monoceres Posted April 28, 2008 Share Posted April 28, 2008 (edited) I'm currently writing a simple triangle solver app, but I'm having troubles when using the law of sines ( a/Sin(A) = b/Sin( ). Here's my problem: #include <math.au3> ; When testing this on my calculator I get around 19 which is correct but this doesn't (-4.03) MsgBox(0,"",(10/_Degree(Sin(10)))*_Degree(Sin(160))) ; Oh and neither does this: MsgBox(0,"",(10/Sin(10))*Sin(160)) ; This works however: MsgBox(0,"",(10/_Degree(Sin(10)))*_Degree(Sin(10))) I know it's the stupid radians fault but how do I fix it? Edited April 28, 2008 by monoceres Broken link? PM me and I'll send you the file! Link to comment Share on other sites More sharing options...
evilertoaster Posted April 28, 2008 Share Posted April 28, 2008 When you use the Sin() function, you must always give it a paramater in radians, and it will always return a number in radians. I see at some points you are using 160 which is most likely degrees. Make sure you pay close attention to which numbers you use as paramaters. Link to comment Share on other sites More sharing options...
monoceres Posted April 28, 2008 Author Share Posted April 28, 2008 When you use the Sin() function, you must always give it a paramater in radians, and it will always return a number in radians. I see at some points you are using 160 which is most likely degrees. Make sure you pay close attention to which numbers you use as paramaters.Of course how foolish of me.Thanks for looking into it Broken link? PM me and I'll send you the file! Link to comment Share on other sites More sharing options...
weaponx Posted April 28, 2008 Share Posted April 28, 2008 Take a look at this:#463161 Link to comment Share on other sites More sharing options...
The Kandie Man Posted April 29, 2008 Share Posted April 29, 2008 When you use the Sin() function, you must always give it a paramater in radians, and it will always return a number in radians. I see at some points you are using 160 which is most likely degrees. Make sure you pay close attention to which numbers you use as paramaters. @Everyone, especially monoceres This is not so. Sin(x) does not return a number in any particular unit. It merely returns the value of the ratio of the length of the opposite side to the length of the hypotenuse of one of the non right angles in a right triangle whose angle measure is x. The angle measure is traditionally given in radians for Sine, Cosine, and Tangent functions because radians are the natural units of a circle. The only reason we use degrees is because the greeks had some fascination with using degrees instead of the more natural radians. In the world of the unit circle, Sin() is the value of the y coordinate on the unit circle while Cos() is the value of the x coordinate on the unit circle. Tan() is equal to the slope of the angle on the unit circle. I know you are frustrated about using radians instead of degrees, but please use the radians. They really are much more natural and much better than degrees. Anyway, to help you, i have made this: ConsoleWrite(Round(Cos(_DegreesToRadians(90)),2)&@LF) ConsoleWrite(_RadiansToDegrees(2*3.14159265358979)&@LF) Func _DegreesToRadians($nDegrees) Local $pi = 3.14159265358979 Return $nDegrees * $pi / 180 ; pi is equal to 180 degrees. So remove the 180 and multiply the remaining value by pi(I did this backwards, but it doesn't matter). EndFunc Func _RadiansToDegrees($nRadians) Local $pi = 3.14159265358979 Return $nRadians * 180 / $pi ; pi is equal to 180 degrees. So remove the pi and multiply the remaining value by 180(I did this backwards, but it doesn't matter). EndFuncoÝ÷ Ù¦zfÞ× ç¬jwkiØÆ«z)éºÛ(~Ø^~éܶ*'J)Þ "æ§u6§éíhºÚn¶Äáz¦ëlj·®((¶¸«b¢Çèªâm®&§W¨Ê(اj׬¢»%¢¬¢v®+·%{br¯z¼(®Wr¢æ«{ +)àqÞè¬Ê«{¦¦WèqêÞ±«¢+Ù5Í ½à À°ÅÕ½ÐìÅÕ½Ðì° ÄÀ½M¥¸¡}ÉÍQ½I¥¹Ì ÄÀ¤¤¤©M¥¸¡}ÉÍQ½I¥¹Ì ÄØÀ¤¤¤()Õ¹}ÉÍQ½I¥¹Ì ÀÌØí¹É̤(%1½°ÀÌØíÁ¤ô̸ÄÐÄÔäÈØÔÌÔàäÜä(%IÑÕɸÀÌØí¹Ę́ÀÌØíÁ¤¼ÄàÀ)¹Õ¹ It does give the answer as something around 19. I hope this answered your question. - The Kandie Man ;-) "So man has sown the wind and reaped the world. Perhaps in the next few hours there will no remembrance of the past and no hope for the future that might have been." & _"All the works of man will be consumed in the great fire after which he was created." & _"And if there is a future for man, insensitive as he is, proud and defiant in his pursuit of power, let him resolve to live it lovingly, for he knows well how to do so." & _"Then he may say once more, 'Truly the light is sweet, and what a pleasant thing it is for the eyes to see the sun.'" - The Day the Earth Caught Fire Link to comment Share on other sites More sharing options...
monoceres Posted April 29, 2008 Author Share Posted April 29, 2008 @Everyone, especially monoceres This is not so. Sin(x) does not return a number in any particular unit. It merely returns the value of the ratio of the length of the opposite side to the length of the hypotenuse of one of the non right angles in a right triangle whose angle measure is x. The angle measure is traditionally given in radians for Sine, Cosine, and Tangent functions because radians are the natural units of a circle. The only reason we use degrees is because the greeks had some fascination with using degrees instead of the more natural radians. In the world of the unit circle, Sin() is the value of the y coordinate on the unit circle while Cos() is the value of the x coordinate on the unit circle. Tan() is equal to the slope of the angle on the unit circle. I know you are frustrated about using radians instead of degrees, but please use the radians. They really are much more natural and much better than degrees. Anyway, to help you, i have made this: ConsoleWrite(Round(Cos(_DegreesToRadians(90)),2)&@LF) ConsoleWrite(_RadiansToDegrees(2*3.14159265358979)&@LF) Func _DegreesToRadians($nDegrees) Local $pi = 3.14159265358979 Return $nDegrees * $pi / 180 ; pi is equal to 180 degrees. So remove the 180 and multiply the remaining value by pi(I did this backwards, but it doesn't matter). EndFunc Func _RadiansToDegrees($nRadians) Local $pi = 3.14159265358979 Return $nRadians * 180 / $pi ; pi is equal to 180 degrees. So remove the pi and multiply the remaining value by 180(I did this backwards, but it doesn't matter). EndFuncoÝ÷ Ù¦zfÞ× ç¬jwkiØÆ«z)éºÛ(~Ø^~éܶ*'J)Þ "æ§u6§éíhºÚn¶Äáz¦ëlj·®((¶¸«b¢Çèªâm®&§W¨Ê(اj׬¢»%¢¬¢v®+·%{br¯z¼(®Wr¢æ«{ +)àqÞè¬Ê«{¦¦WèqêÞ±«¢+Ù5Í ½à À°ÅÕ½ÐìÅÕ½Ðì° ÄÀ½M¥¸¡}ÉÍQ½I¥¹Ì ÄÀ¤¤¤©M¥¸¡}ÉÍQ½I¥¹Ì ÄØÀ¤¤¤()Õ¹}ÉÍQ½I¥¹Ì ÀÌØí¹É̤(1½°ÀÌØíÁ¤ô̸ÄÐÄÔäÈØÔÌÔàäÜä(IÑÕɸÀÌØí¹Ę́ÀÌØíÁ¤¼ÄàÀ)¹Õ¹ It does give the answer as something around 19. I hope this answered your question. - The Kandie Man ;-) Thanks for the answer. I already solved it using the function _radian() which I guess does exactly like the same as your function. Anyways, I'm almost done with my Triangle Solver, posting it later Broken link? PM me and I'll send you the file! Link to comment Share on other sites More sharing options...
monoceres Posted April 29, 2008 Author Share Posted April 29, 2008 Thanks for the help I've just posted my Triangle Solver Broken link? PM me and I'll send you the file! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now