- This wiki is out of date, use the continuation of this wiki instead
Sin
From FenixWiki
(Difference between revisions)
| Revision as of 00:48, 8 June 2007 (edit) 130.89.160.132 (Talk) ← Previous diff |
Current revision (15:03, 1 March 2008) (edit) (undo) Sandman (Talk | contribs) m (→Example) |
||
| (3 intermediate revisions not shown.) | |||
| Line 7: | Line 7: | ||
| Returns the sine of the specified [[angle]]. | Returns the sine of the specified [[angle]]. | ||
| - | This [[function]] performs a sine calculation on | + | This [[function]] performs a sine calculation on a certain angle and returns a value between -1 and 1. |
| == Parameters == | == Parameters == | ||
| Line 18: | Line 18: | ||
| == Notes == | == Notes == | ||
| - | The [[angle]] value used in this function should be in thousandths of degrees, as most angles within [[Fenix]] are | + | The [[angle]] value used in this function should be in thousandths of degrees, as most angles within [[Fenix]] are. |
| To read about all aspects of trigonometry, you can click on Wikipedia's [http://en.wikipedia.org/wiki/Trigonometric_function Trigonometric function] page. | To read about all aspects of trigonometry, you can click on Wikipedia's [http://en.wikipedia.org/wiki/Trigonometric_function Trigonometric function] page. | ||
| + | |||
| + | == Example == | ||
| + | <pre> | ||
| + | Const | ||
| + | screen_width = 320; | ||
| + | screen_height = 200; | ||
| + | screen_border = 15; | ||
| + | End | ||
| + | |||
| + | Global | ||
| + | float value; | ||
| + | End | ||
| + | |||
| + | Process Main() | ||
| + | Begin | ||
| + | |||
| + | // Modes | ||
| + | set_title("Sine Graph"); | ||
| + | set_mode(screen_width,screen_height); | ||
| + | |||
| + | // X axis | ||
| + | for(x=1;x<=8;x++) | ||
| + | write( 0, | ||
| + | screen_border+x*(screen_width-screen_border)/8+3, | ||
| + | screen_height-1, | ||
| + | 8, | ||
| + | itoa(x*360/8 )+"^" ); | ||
| + | end | ||
| + | draw_line(1,screen_height-screen_border,screen_width,screen_height-screen_border); | ||
| + | |||
| + | // Y axis | ||
| + | write(0,screen_border-1,20,5,"1"); | ||
| + | write(0,screen_border-1,screen_height/2,5,"0"); | ||
| + | write(0,screen_border-1,screen_height-20,5,"-1"); | ||
| + | draw_line(screen_border,1,screen_border,screen_height-1); | ||
| + | |||
| + | // Draw tangent | ||
| + | for(angle=0;angle<360;angle++) | ||
| + | value=sin(angle*1000)*(screen_height/2-20); | ||
| + | put_pixel( screen_border+angle*(screen_width-screen_border)/360, | ||
| + | screen_height/2-value, | ||
| + | rgb(255,255,255) ); | ||
| + | // screen_height/2-value because the screen's origin (0,0) is topleft instead of downleft. | ||
| + | end | ||
| + | |||
| + | Repeat | ||
| + | frame; | ||
| + | Until(key(_ESC)) | ||
| + | |||
| + | End | ||
| + | </pre> | ||
| + | Used in example: [[set_title]](), [[set_mode]](), [[write]](), [[draw_line]](), [[sin]](), [[put_pixel]](), [[key]]() | ||
| + | |||
| + | This will result in something like:<br /> | ||
| + | {{Image | ||
| + | | image = Sin.png | ||
| + | | caption = Sine | ||
| + | }} | ||
| + | |||
| + | {{Funcbox | ||
| + | | category = Math | ||
| + | }} | ||
Current revision
Contents |
[edit] Definition
FLOAT sin ( <FLOAT angle> )
Returns the sine of the specified angle.
This function performs a sine calculation on a certain angle and returns a value between -1 and 1.
[edit] Parameters
| FLOAT angle | - Angle, in thousandths of degrees. i.e. 75000 = 75º |
[edit] Returns
FLOAT : The sine result of the specified angle.
[edit] Notes
The angle value used in this function should be in thousandths of degrees, as most angles within Fenix are.
To read about all aspects of trigonometry, you can click on Wikipedia's Trigonometric function page.
[edit] Example
Const
screen_width = 320;
screen_height = 200;
screen_border = 15;
End
Global
float value;
End
Process Main()
Begin
// Modes
set_title("Sine Graph");
set_mode(screen_width,screen_height);
// X axis
for(x=1;x<=8;x++)
write( 0,
screen_border+x*(screen_width-screen_border)/8+3,
screen_height-1,
8,
itoa(x*360/8 )+"^" );
end
draw_line(1,screen_height-screen_border,screen_width,screen_height-screen_border);
// Y axis
write(0,screen_border-1,20,5,"1");
write(0,screen_border-1,screen_height/2,5,"0");
write(0,screen_border-1,screen_height-20,5,"-1");
draw_line(screen_border,1,screen_border,screen_height-1);
// Draw tangent
for(angle=0;angle<360;angle++)
value=sin(angle*1000)*(screen_height/2-20);
put_pixel( screen_border+angle*(screen_width-screen_border)/360,
screen_height/2-value,
rgb(255,255,255) );
// screen_height/2-value because the screen's origin (0,0) is topleft instead of downleft.
end
Repeat
frame;
Until(key(_ESC))
End
Used in example: set_title(), set_mode(), write(), draw_line(), sin(), put_pixel(), key()
This will result in something like:
|
| Math Functions | |
| • Abs() • Acos() • Asin() • Atan() • Cos() • Fget_angle() • Fget_dist() • Get_distx() • Get_disty() • Pow() • Rand() • Rand_seed() • Sin() • Sqrt() • Tan() • | |

