Usuário com melhor resposta
Converter valores ACos (Radiano para Grau)

Pergunta
-
Olá, estou fazendo um programa para resolver os exercícios de física do meu curso e em um momento do mesmo, lidamos com medidas em grau. Fui colocar essas medidas no programa, entretanto, essas medidas retornaram em radiano, não em grau. Após pesquisar um pouco, descobri como converter os ângulos de radiano para grau, porém não consegui retornar os valores dos ângulos de radiano para grau.
Gostaria de saber como conseguir esses valores do ângulo em grau.
Exemplo:
30º -> raiz de 3 / 2
45º -> raiz de 2 / 2
60º -> 1 / 2
Grato, Rafael.
Respostas
-
Eu acho que seu problema esta no entendimento da Matematica.
Voce nao obtem o Arco do Cosseno à partir de um angulo, voce obtem o Arco do Cosseno à partir de um cosseno (que varia entre -1 e 1)
https://pt.wikipedia.org/wiki/Cosseno
O arco cosseno é um operaçao trigonometrica inversa:
https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%B5es_trigonom%C3%A9tricas_inversas
Veja como é que é calculado graficamente o cosseno:
Agora, se voce quer obter o COSSENO de um angulo dado por um textbox em VB.NET, entao faça assim:
Dim arcoEmGraus as Double= Convert.ToDouble(TextBoxAnguloEmGraus.Text) Dim arcoEmRadianos as Double=arcoEmGraus*(Math.PI/180) Dim cosseno as Double=Math.Cos(arcoEmRadianos)'parametro sempre em radianos TextBoxValorDoCosseno.Text=cosseno.ToString("0.000")'formata para aparecer somente 3 decimais
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator segunda-feira, 12 de dezembro de 2016 20:22
- Marcado como Resposta Rafael Knust segunda-feira, 12 de dezembro de 2016 21:20
Todas as Respostas
-
Rafael,
Pra fazer o cálculo de raiz quadrada basta usar o Math.Sqrt. Ex:
Dim trintaGraus As Double = Math.Sqrt(3/2) Dim sessenta As Double = 1/2
Esta outra resposta no MSDN mostra como converter radiano em grau: https://social.msdn.microsoft.com/Forums/en-US/9f7a0f31-a6cc-4844-b22d-4d7681afe865/converting-a-variable-from-radians-to-degrees?forum=vblanguage
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Sugerido como Resposta Robson William SilvaModerator quarta-feira, 7 de dezembro de 2016 12:12
-
Juliano, obrigado pela resposta. Consegui algum progresso, entretanto quando eu insiro o valor "90º", seu cosseno aparece como "6,1230..."
Alguma forma de fixar isso?
Código utilizado:
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Try If ComboBox1.Text <> "???" Then Dim degreesAngle As Double Dim radiansAngle As Double Dim radiansCosValue As Double Dim degreesCosValue As Double Double.TryParse(ComboBox1.Text, degreesAngle) radiansAngle = degreesAngle / (180 / Math.PI) radiansCosValue = Math.Cos(radiansAngle) degreesCosValue = radiansCosValue TextBox19.Text = degreesCosValue.ToString ElseIf ComboBox1.Text = "???" Then TextBox19.Text = "" End If Catch ex As Exception End Try End Sub
- Editado Rafael Knust quarta-feira, 7 de dezembro de 2016 20:39
-
Nao.. o valor fornecido pelo ACOS sempre é em radiano, o valor fornecido é um COSSENO e este vai de -1 à 1 (nao existem outros valores)
veja mais aqui: https://msdn.microsoft.com/en-us/library/system.math.acos%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
se voce quiser ver o resultado em graus, faça assim:
double acosEmGraus1=(180/Math.PI)*(Math.Acos(Math.Sqrt(3)/2)))//retorna 30 double acosEmGraus2=(180/Math.PI)*(Math.Acos(1/2)))//retorna 60
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator segunda-feira, 12 de dezembro de 2016 15:07
-
William, obrigado pela resposta, mas ainda não é o que preciso. Estou com dúvida em como conseguir os valores do cosseno de um ângulo em grau, ou seja, adicionei esse código acima em um Timer para que todas as vezes que inserirmos um valor na ComboBox1, o valor desse ângulo seja mostrado na TextBox ao lado, por exemplo, ao inserirmos 180º (Já em grau) na ComboBox1, o valor do cosseno deste ângulo é expresso na TextBox ao lado que no caso seria "-1" entretanto há um erro que não consigo identificar pois quando inserimos 90º ou 270º, o valor expresso na TextBox ao lado não corresponde com o valor do cosseno do ângulo citado... Gostaria de saber como resolver isso.
OBS: Já pus o código para passar os ângulos de radiano para grau, o que falta agora é conseguir achar os valores do cosseno dos respectivos ângulos pelo Timer (180º -> -1 / 360º -> 1 ... )
Grato,
Rafael
-
Rafael, não tem a ver com a dúvida do cálculo em si, mas não entendi a necessidade de um timer pra pegar o valor e realizar o cálculo.
E se está digitando o valor, pq está usando um ComboBox?
Whatever...rsrs..segue exemplo de código com as saídas dos testes:
public class Program { public static void Main() { Console.WriteLine(Math.Cos(DegreeToRadian(0f))); Console.WriteLine(Math.Cos(DegreeToRadian(30f))); Console.WriteLine(Math.Cos(DegreeToRadian(60f))); Console.WriteLine(Math.Cos(DegreeToRadian(90f))); Console.WriteLine(Math.Cos(DegreeToRadian(180f))); } private static double DegreeToRadian(double angle) { return Math.PI * angle / 180.0; } private static double RadianToDegree(double angle) { return angle * (180.0 / Math.PI); } }
Saída:
1 0.866025403784439 0.5 6.12303176911189E-17 -1
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
William, obrigado pela resposta, mas ainda não é o que preciso. Estou com dúvida em como conseguir os valores do cosseno de um ângulo em grau, ou seja, adicionei esse código acima em um Timer para que todas as vezes que inserirmos um valor na ComboBox1, o valor desse ângulo seja mostrado na TextBox ao lado, por exemplo, ao inserirmos 180º (Já em grau) na ComboBox1, o valor do cosseno deste ângulo é expresso na TextBox ao lado que no caso seria "-1" entretanto há um erro que não consigo identificar pois quando inserimos 90º ou 270º, o valor expresso na TextBox ao lado não corresponde com o valor do cosseno do ângulo citado... Gostaria de saber como resolver isso.
OBS: Já pus o código para passar os ângulos de radiano para grau, o que falta agora é conseguir achar os valores do cosseno dos respectivos ângulos pelo Timer (180º -> -1 / 360º -> 1 ... )
Grato,
Rafael
No titulo da sua duvida esta escrito:"Converter valores ACos (Radiano para Grau) "
Eu entendi que voce estava tentando usar como parametro para o ACos (Arco cujo cosseno é ) um valor em radiano.
A funçao cosseno so aceita valores em radianos, como o Juliano mostrou, portanto valores entre 0 à 2 PI (e multiplos detes)
Outro detalhe:
radiansCosValue = Math.Cos(radiansAngle)
radiansCosValue nao faz sentido, porque o valor de um cosseno nao é em radianos e sim um valor entre -1 e 1.
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 8 de dezembro de 2016 18:57
-
-
Rafael,
Arco do Cosseno é a operaçao reversa do cosseno.
Cosseno de 90° é 0
Arco cujo o cosseno é 0 é 90°.
Em c#:
double arcoEmGraus=90; double arcoEmRadianos=arcoEmGraus*(Math.PI/180); double cosseno=Math.Cos(arcoEmRadianos);//parametro sempre em radianos double arcoDoCossenoEmRadianos=Math.ACos(cosseno);//resultado sempre em radianos double arcoDoCossenoEmGraus=arcoDoCossenoEmRadianos*(180/ Math.PI);
Eu nao sei o que voce esta tentando fazer. Seu titulo fala de ACos, mas seu codigo de exemplo voce so usa o Cos.
Diga-nos exatamente o que voce quer fazer.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator domingo, 11 de dezembro de 2016 23:54
-
Boa tarde William! Gostaria de um código em VB.net para conseguir os valores do arco do cosseno (em grau) de um determinado ângulo. Por exemplo, ao inserir o ângulo em uma TextBox, o valor do arco do cosseno desse ângulo será mostrado em outra TextBox.
Grato,
Rafael
-
Eu acho que seu problema esta no entendimento da Matematica.
Voce nao obtem o Arco do Cosseno à partir de um angulo, voce obtem o Arco do Cosseno à partir de um cosseno (que varia entre -1 e 1)
https://pt.wikipedia.org/wiki/Cosseno
O arco cosseno é um operaçao trigonometrica inversa:
https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%B5es_trigonom%C3%A9tricas_inversas
Veja como é que é calculado graficamente o cosseno:
Agora, se voce quer obter o COSSENO de um angulo dado por um textbox em VB.NET, entao faça assim:
Dim arcoEmGraus as Double= Convert.ToDouble(TextBoxAnguloEmGraus.Text) Dim arcoEmRadianos as Double=arcoEmGraus*(Math.PI/180) Dim cosseno as Double=Math.Cos(arcoEmRadianos)'parametro sempre em radianos TextBoxValorDoCosseno.Text=cosseno.ToString("0.000")'formata para aparecer somente 3 decimais
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator segunda-feira, 12 de dezembro de 2016 20:22
- Marcado como Resposta Rafael Knust segunda-feira, 12 de dezembro de 2016 21:20
-