Difference between revisions of "Trigonometry Functions"
Jump to navigation
Jump to search
commenting comments again, directing to quest variables, and making things fit on the page
imported>DragoonWraith |
imported>DragoonWraith (commenting comments again, directing to quest variables, and making things fit on the page) |
||
Line 42: | Line 42: | ||
This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | ||
float ang (the measure of the angle) | float ang ;(the measure of the angle) | ||
float n (used internally) | float n ;(used internally) | ||
float t2 (used internally) | float t2 ;(used internally) | ||
float sin (sine of the angle) | float sin ;(sine of the angle) | ||
float cos (cosine of the angle) | float cos ;(cosine of the angle) | ||
float tan (tangent of the angle) | float tan ;(tangent of the angle) | ||
You may rename these if you wish, but that means changing the code to match. All of them must be floats. | You may rename these if you wish, but that means changing the code to match. All of them must be floats. | ||
Line 79: | Line 79: | ||
This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | ||
float ang (the measure of the angle) | float ang ;(the measure of the angle) | ||
float rad (used internally) | float rad ;(used internally) | ||
float exp (used internally) | float exp ;(used internally) | ||
float sin (the sine of the angle) | float sin ;(the sine of the angle) | ||
float cos (the cosine of the angle) | float cos ;(the cosine of the angle) | ||
float tan (the tangent of the angle) | float tan ;(the tangent of the angle) | ||
You may rename these if you wish, but that means changing the code, which is not advised, as there are a lot of variables here. All of them must be floats. | You may rename these if you wish, but that means changing the code, which is not advised, as there are a lot of variables here. All of them must be floats. | ||
Line 126: | Line 126: | ||
This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | ||
float angle (measure of the angle) | float angle ;(measure of the angle) | ||
float t1 (used internally) | float t1 ;(used internally) | ||
float t2 (used internally) | float t2 ;(used internally) | ||
float t5 (used internally) | float t5 ;(used internally) | ||
float t6 (used internally) | float t6 ;(used internally) | ||
float sina (sine of the angle) | float sina ;(sine of the angle) | ||
float cosa (cosine of the angle) | float cosa ;(cosine of the angle) | ||
float tana (tangent of the angle) | float tana ;(tangent of the angle) | ||
All must be floats. Though they can be renamed, doing so means changing the function code to match. | All must be floats. Though they can be renamed, doing so means changing the function code to match. | ||
; script originally by JOG | ; script originally by JOG | ||
Line 143: | Line 143: | ||
set Wiki.t5 to Wiki.t2*Wiki.t2*Wiki.t1 | set Wiki.t5 to Wiki.t2*Wiki.t2*Wiki.t1 | ||
set Wiki.t6 to Wiki.t5*Wiki.t1 | set Wiki.t6 to Wiki.t5*Wiki.t1 | ||
set Wiki.sina to Wiki.t1 - Wiki.t1*Wiki.t2/6 + Wiki.t5/120 - Wiki.t5*t2/5040 + Wiki.t6*Wiki.t2*Wiki.t1/362880 | set Wiki.sina to Wiki.t1 - Wiki.t1*Wiki.t2/6 + Wiki.t5/120 - Wiki.t5*t2/5040 | ||
set Wiki.sina to Wiki.sina + Wiki.t6*Wiki.t2*Wiki.t1/362880 | |||
;note that the previous two lines have been split in order to display properly | |||
;they should be on one line in your code | |||
set Wiki.cosa to 1 - Wiki.t2/2 + Wiki.t2*Wiki.t2/24 - Wiki.t6/720 + Wiki.t6*Wiki.t2/40320 | set Wiki.cosa to 1 - Wiki.t2/2 + Wiki.t2*Wiki.t2/24 - Wiki.t6/720 + Wiki.t6*Wiki.t2/40320 | ||
set Wiki.tana to Wiki.sina/Wiki.cosa | set Wiki.tana to Wiki.sina/Wiki.cosa | ||
Line 161: | Line 164: | ||
This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | This [[:Category:Stage Functions|function]] requires the following variables to be declared in your [[Global Script]]: | ||
float x (the sine of the angle) | float x ;(the sine of the angle) | ||
float n (used internally) | float n ;(used internally) | ||
float arcsinx (the arcsine, that is, the measure of the angle) | float arcsinx ;(the arcsine, that is, the measure of the angle) | ||
These may be renamed, but doing so means changing them in the code. | These may be renamed, but doing so means changing them in the code. | ||
Line 175: | Line 178: | ||
set Wiki.n to (Wiki.arcsinx+(Wiki.n/Wiki.arcsinx))/2 | set Wiki.n to (Wiki.arcsinx+(Wiki.n/Wiki.arcsinx))/2 | ||
set arcsinx to 57.2957795*(1.5707963-Wiki.n*(1.5707288-0.2121144*Wiki.x+0.0742610*Wiki.x*Wiki.x-0.0187293*Wiki.x*Wiki.x*Wiki.x)) | set Wiki.arcsinx to 57.2957795*(1.5707963-Wiki.n*(1.5707288-0.2121144*Wiki.x+0.0742610*Wiki.x*Wiki.x-0.0187293*Wiki.x*Wiki.x*Wiki.x)) | ||
;note that this does not display properly - be sure to get the entire line with copy and paste | |||
This approximation is very accurate (99.9% - 99.9999%) for angles of 45 degrees and higher. For smaller angles you can get a higher precision when you use a taylor series with 15+ iterations. | This approximation is very accurate (99.9% - 99.9999%) for angles of 45 degrees and higher. For smaller angles you can get a higher precision when you use a taylor series with 15+ iterations. | ||
Line 186: | Line 190: | ||
This can be approximated by Oblivion using a [[:Category:Staged Functions|function]]. This function requires the following variables be declared in your [[Global Script]]: | This can be approximated by Oblivion using a [[:Category:Staged Functions|function]]. This function requires the following variables be declared in your [[Global Script]]: | ||
float z (the sine of the angle) | float z ;(the sine of the angle) | ||
float z3 (used internally) | float z3 ;(used internally) | ||
float z5 (used internally) | float z5 ;(used internally) | ||
float z7 (used internally) | float z7 ;(used internally) | ||
float arcsinz (the arcsine, that is, the measure of the angle) | float arcsinz ;(the arcsine, that is, the measure of the angle) | ||
These can be renamed, but must also be changed in the code. | These can be renamed, but must also be changed in the code. | ||
;script originally by DragoonWraith | ;script originally by DragoonWraith | ||
Line 197: | Line 201: | ||
set Wiki.z7 to (Wiki.z5*Wiki.z*Wiki.z) | set Wiki.z7 to (Wiki.z5*Wiki.z*Wiki.z) | ||
set arcsinz to (Wiki.z+(1/2)*(Wiki.z3/3)+(3/8)*(Wiki.z5/5)+(15/48)*(Wiki.z7/7)) | set Wiki.arcsinz to (Wiki.z+(1/2)*(Wiki.z3/3)+(3/8)*(Wiki.z5/5)+(15/48)*(Wiki.z7/7)) | ||
More terms will increase accuracy. The larger the angle, the more terms are needed to get acceptable accuracy. As a rough guide use 3 terms for every 10° to get an accuracy of at least 1 decimal digit. | More terms will increase accuracy. The larger the angle, the more terms are needed to get acceptable accuracy. As a rough guide use 3 terms for every 10° to get an accuracy of at least 1 decimal digit. | ||
Line 225: | Line 229: | ||
This function requires the following variables be declared in your [[Global Script]]: | This function requires the following variables be declared in your [[Global Script]]: | ||
float z (the tangent of the angle) | float z ;(the tangent of the angle) | ||
float z3 (used internally) | float z3 ;(used internally) | ||
float z5 (used internally) | float z5 ;(used internally) | ||
float z7 (used internally) | float z7 ;(used internally) | ||
float arcsinz (the arctangent, that is, the measure of the angle) | float arcsinz ;(the arctangent, that is, the measure of the angle) | ||
These can be renamed, but must also be changed in the code. | These can be renamed, but must also be changed in the code. | ||
;modified from arcsine script supplied by DragoonWraith | ;modified from arcsine script supplied by DragoonWraith | ||
set z3 to ( z * z * z ) | set Wiki.z3 to ( Wiki.z * Wiki.z * Wiki.z ) | ||
set z5 to ( z3 * z * z ) | set Wiki.z5 to ( Wiki.z3 * Wiki.z * Wiki.z ) | ||
set z7 to ( z5 * z * z ) | set Wiki.z7 to ( Wiki.z5 * Wiki.z * Wiki.z ) | ||
set arctanz to ( z - (z3/3) + (z5/5) - (z7/7) ) | set Wiki.arctanz to ( Wiki.z - (Wiki.z3/3) + (Wiki.z5/5) - (Wiki.z7/7) ) | ||
Again, more terms equals more accuracy. | Again, more terms equals more accuracy. |