jdias 0 Denunciar post Postado Outubro 22, 2007 Boa, tarde.Estou com o seguinte problema:Estou precisando usar a função DegToRad do delphi para obter o seno e o co-seno de alguns ângulos. O problema é que essa função recebe como parâmetro o ãngulo em decimais e não ví nenhuma função no delphi que transforme um valar angular em decimais e vice-versa. Alguem poderia me dar uma ajuda?Obrigado.jdias. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 23, 2007 Veja se este exemplo lhe ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
jdias 0 Denunciar post Postado Outubro 26, 2007 Olá, Márcio.Obrigado pela resposta, mas o exemplo citado não resolve o problema. A questão não é usar a função DegToRad e sim o parâmetro que ela recebe. Como eu disse,o parâmetro passado tem que estar em graus decimais e o delphi não tem uma função que fazessa transformação. Essa função é simples de ser criada, como visto abaixo. function HR(HMS : Extended) : Extended;var HMS_Res, nDeg, nFrac, nMin, nSeg : Extended;begin HMS_Res := HMS; // -160.48 HMS := abs(HMS); // Se for negativo, torna positivo. nDeg := Int(HMS); // 160 nFrac := Frac(HMS); // 0.48 nMin := Int(nFrac*100); // 47 ao invés de 48 nSeg := Frac(nFrac*100)*100; // 100 ao invés de 0 result := nDeg+((nMin*60)+nSeg)/3600; if HMS_Res < 0 then result := 0 - result;end;Só que o delphi dá um resultado meio maluco. Já queimeis as pestanas tentando resolver o problema, mas não vi a solução, por isso estou colocando a função aqui para ver se alguem tem uma explicação para o caso.Ela funciona perfeitamente quando recebe um parâmentro com graus, minutos e segundo, mas quando recebe somentegraus e minutos, dá erro.O erro está na instrução 'nMin := Int(nFrac*100)'. Para pegar os minutos, multiplico a parte fracionária por 100e pego a parte inteira do resultado, que no caso seria 0,48*100 = 48.00, só que o delphi retorna algo parecido com 37.999999.Me parece ser um 'bug' sério do delphi.Por favor, deem uma olhada.Obrigado pela atenção.José Nildo D. Silva.jn.dias@click21.com.brTaubaté - SP. Compartilhar este post Link para o post Compartilhar em outros sites