This wiki is out of date, use the continuation of this wiki instead

Get distx

From FenixWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 21:55, 25 July 2007 (edit)
Sandman (Talk | contribs)
m
← Previous diff
Current revision (15:54, 1 March 2008) (edit) (undo)
Sandman (Talk | contribs)

 
Line 6: Line 6:
Returns the horizontal distance in pixels of a specified displacement. Returns the horizontal distance in pixels of a specified displacement.
 +
 +This is the same as <code>[[cos]](''angle'')*''distance''</code>.
== Parameters == == Parameters ==
Line 19: Line 21:
== Notes == == Notes ==
This function returns the width of an imaginary rectangle who's opposite corners are the specified distance apart, at the specified [[angle]] from each other. This function returns the width of an imaginary rectangle who's opposite corners are the specified distance apart, at the specified [[angle]] from each other.
 +
 +{{Image
 + | image = get_distxy.png
 + | caption = [[get_distx]]() and [[get_disty]]()
 +}}
== Example == == Example ==
<pre> <pre>
-Program example;+Global
-global+
xdist; xdist;
ydist; ydist;
Line 29: Line 35:
ang; ang;
mydraw; mydraw;
 +End
 +
 +Process Main()
Begin Begin
 +
set_mode(640,480,16); set_mode(640,480,16);
- set_fps(50,0);+ set_fps (50,0);
- graph=new_map(3,3,16);+ graph = new_map(3,3,16);
map_clear(0,graph,rgb(0,255,0)); map_clear(0,graph,rgb(0,255,0));
- x=320;y=240;+ x = 320;
 + y = 240;
set_text_color(rgb(0,0,0)); set_text_color(rgb(0,0,0));
- write(0,60,0,2,"X Diff: ");+ write (0,60, 0,2,"X Diff: ");
- write_int(0,60,0,0,&xdist);+ write_int(0,60, 0,0,&xdist);
- write(0,60,10,2,"Y Diff: ");+ write (0,60,10,2,"Y Diff: ");
write_int(0,60,10,0,&ydist); write_int(0,60,10,0,&ydist);
- write(0,60,20,2,"Angle: ");+ write (0,60,20,2,"Angle: ");
write_int(0,60,20,0,&ang); write_int(0,60,20,0,&ang);
- write(0,60,30,2,"Distance: ");+ write (0,60,30,2,"Distance: ");
write_int(0,60,30,0,&dist); write_int(0,60,30,0,&dist);
- write(0,10,40,0,"Left/right rotates your angle, up/down changes your distance");+ write (0,10,40,0,"Left/right rotates your angle, up/down changes your distance");
put(0,graph,x,y); put(0,graph,x,y);
Line 68: Line 79:
end end
- xdist=get_distx(ang,dist);+ xdist = get_distx(ang,dist);
- ydist=get_disty(ang,dist);+ ydist = get_disty(ang,dist);
- x=320+xdist;+ x = 320 + xdist;
- y=240+ydist;+ y = 240 + ydist;
frame; frame;
- 
until(key(_esc)) until(key(_esc))
 +
 + let_me_alone();
exit(); exit();
 +
End End
-process drawing_background()+Process drawing_background()
-begin+Begin
- graph=new_map(640,480,16);set_center(0,graph,0,0);map_clear(0,graph,rgb(64,0,0));+ graph = new_map(640,480,16);
- drawing_map(0,graph);drawing_color(rgb(0,0,0));+ set_ceter (0,graph,0,0);
 + map_clear (0,graph,rgb(64,0,0));
 + drawing_map (0,graph);
 + drawing_color(rgb(0,0,0));
loop loop
- if(mydraw>0)delete_draw(mydraw);end 
map_clear(0,graph,rgb(255,255,255)); map_clear(0,graph,rgb(255,255,255));
- mydraw=draw_line(320,240,father.x,father.y);+ mydraw = draw_line(320,240,father.x,father.y);
- frame;+ frame;
 + delete_draw(mydraw);
end end
-end+OnExit
 + unload_map(0,graph);
 +End
</pre> </pre>
 +Used in example: [[set_mode]](), [[set_fps]](), [[new_map]](), [[set_text_color]](), [[write]](), [[write_int]](), [[put]](), [[key]](), [[get_distx]](), [[get_disty]](), [[let_me_alone]](), [[exit]](), [[set_center]](), [[map_clear]](), [[rgb]](), [[drawing_map]](), [[drawing_color]](), [[draw_line]](), [[delete_draw]](), [[unload_map]]()
 +
 +{{Funcbox
 + | category = Math
 +}}

Current revision


Contents

[edit] Definition

INT get_distx ( <INT angle> , <INT distance> )

Returns the horizontal distance in pixels of a specified displacement.

This is the same as cos(angle)*distance.

[edit] Parameters

INT angle - Angle, in thousandths of degrees (90° = 90000).
INT distance - Length (in pixels) to measure.

[edit] Returns

INT : The horizontal distance, in pixels, of a specified displacement.

[edit] Notes

This function returns the width of an imaginary rectangle who's opposite corners are the specified distance apart, at the specified angle from each other.

Image:get_distxy.png
get_distx() and get_disty()

[edit] Example

Global
    xdist;
    ydist;
    dist;
    ang;
    mydraw;
End

Process Main()
Begin

    set_mode(640,480,16);
    set_fps (50,0);
    graph = new_map(3,3,16);
    map_clear(0,graph,rgb(0,255,0));
    x = 320;
    y = 240;

    set_text_color(rgb(0,0,0));
    write    (0,60, 0,2,"X Diff: ");
    write_int(0,60, 0,0,&xdist);
    write    (0,60,10,2,"Y Diff: ");
    write_int(0,60,10,0,&ydist);
    write    (0,60,20,2,"Angle: ");
    write_int(0,60,20,0,&ang);
    write    (0,60,30,2,"Distance: ");
    write_int(0,60,30,0,&dist);

    write    (0,10,40,0,"Left/right rotates your angle, up/down changes your distance");
    
    put(0,graph,x,y);
    drawing_background();

    repeat
        if(key(_up))
            dist++;
        end

        if(key(_down))
            dist--;
        end

        if(key(_left))
            ang-=1000;
        end

        if(key(_right))
            ang+=1000;
        end

        xdist = get_distx(ang,dist);
        ydist = get_disty(ang,dist);

        x = 320 + xdist;
        y = 240 + ydist;

        frame;

    until(key(_esc))

    let_me_alone();
    exit();

End

Process drawing_background()
Begin
    graph = new_map(640,480,16);
    set_ceter   (0,graph,0,0);
    map_clear    (0,graph,rgb(64,0,0));
    drawing_map  (0,graph);
    drawing_color(rgb(0,0,0));
    loop
        map_clear(0,graph,rgb(255,255,255));
        mydraw = draw_line(320,240,father.x,father.y);
        frame;
        delete_draw(mydraw);
    end
OnExit
    unload_map(0,graph);
End

Used in example: set_mode(), set_fps(), new_map(), set_text_color(), write(), write_int(), put(), key(), get_distx(), get_disty(), let_me_alone(), exit(), set_center(), map_clear(), rgb(), drawing_map(), drawing_color(), draw_line(), delete_draw(), unload_map()


Math Functions
Abs() • Acos() • Asin() • Atan() • Cos() • Fget_angle() • Fget_dist() • Get_distx() • Get_disty() • Pow() • Rand() • Rand_seed() • Sin() • Sqrt() • Tan() •
Personal tools