Blizter Banni(e)
Messages : 2002
| Sujet: Script draw_ellipse et draw_ellipse_color Ven 18 Mai 2007 - 18:12 | |
| Bon le titre dit tout. argument 0 : un sommet de l'ellipse argument 1 : Le sommet opposé argument 2 : l'épaisseur si color : argument 3 : couleur 1 argument 4 : couleur 2 argument 5 : outline draw_ellipse - Spoiler:
- Citation :
x1=argument0; y1=argument1; x2=argument2; y2=argument3; b=argument4; distance=point_distance(x1,y1,x2,y2); fast=distance/20; if(distance!=0) { a=distance/2; angle=point_direction(x1,y1,x2,y2); distellips=sqrt(sqr(b)-(sqr(b)*sqr(fast-a)/sqr(a))); draw_line(x1,y1,x1+lengthdir_x(fast,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(fast,angle)+lengthdir_y(distellips,angle+90)); draw_line(x1,y1,x1+lengthdir_x(fast,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(fast,angle)+lengthdir_y(distellips,angle-90)); for(i=0; i<=distance; i+=fast) { distellips=sqrt(sqr(b)-(sqr(b)*sqr(i-a)/sqr(a))); if(i+fast<=distance){t=i+fast;}else{t=i;} distellips2=sqrt(sqr(b)-(sqr(b)*sqr(t-a)/sqr(a))); draw_line(x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle+90),x1+lengthdir_x(t,angle)+lengthdir_x(distellips2,angle+90),y1+lengthdir_y(t,angle)+lengthdir_y(distellips2,angle+90)); draw_line(x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle-90),x1+lengthdir_x(t,angle)+lengthdir_x(distellips2,angle-90),y1+lengthdir_y(t,angle)+lengthdir_y(distellips2,angle-90)); } distellips=sqrt(sqr(b)-(sqr(b)*sqr((i-fast)-a)/sqr(a))); draw_line(x1+lengthdir_x(i-fast,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(i-fast,angle)+lengthdir_y(distellips,angle+90),x2,y2); draw_line(x1+lengthdir_x(i-fast,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(i-fast,angle)+lengthdir_y(distellips,angle-90),x2,y2); }
draw_ellipse_color - Spoiler:
- Citation :
- x1=argument0; y1=argument1; x2=argument2; y2=argument3;
b=argument4; color1=argument5; color2=argument6; outline=argument7; distance=point_distance(x1,y1,x2,y2); if(outline=0) { fast=0.6; } else { fast=distance/20; } if(distance!=0) { a=distance/2; angle=point_direction(x1,y1,x2,y2); distellips=sqrt(sqr(b)-(sqr(b)*sqr(fast-a)/sqr(a))); draw_line_color(x1,y1,x1+lengthdir_x(fast,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(fast,angle)+lengthdir_y(distellips,angle+90),color1,color1); draw_line_color(x1,y1,x1+lengthdir_x(fast,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(fast,angle)+lengthdir_y(distellips,angle-90),color2,color2); for(i=0; i<=distance; i+=fast) { distellips=sqrt(sqr(b)-(sqr(b)*sqr(i-a)/sqr(a))); if(i+fast<=distance){t=i+fast;}else{t=i;} distellips2=sqrt(sqr(b)-(sqr(b)*sqr(t-a)/sqr(a))); draw_line_color(x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle+90),x1+lengthdir_x(t,angle)+lengthdir_x(distellips2,angle+90),y1+lengthdir_y(t,angle)+lengthdir_y(distellips2,angle+90),color1,color1); draw_line_color(x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle-90),x1+lengthdir_x(t,angle)+lengthdir_x(distellips2,angle-90),y1+lengthdir_y(t,angle)+lengthdir_y(distellips2,angle-90),color2,color2); if(outline=0) { draw_line_color(x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle+90),x1+lengthdir_x(i,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(i,angle)+lengthdir_y(distellips,angle-90),color1,color2); } } distellips=sqrt(sqr(b)-(sqr(b)*sqr((i-fast)-a)/sqr(a))); draw_line_color(x1+lengthdir_x(i-fast,angle)+lengthdir_x(distellips,angle+90),y1+lengthdir_y(i-fast,angle)+lengthdir_y(distellips,angle+90),x2,y2,color1,color1); draw_line_color(x1+lengthdir_x(i-fast,angle)+lengthdir_x(distellips,angle-90),y1+lengthdir_y(i-fast,angle)+lengthdir_y(distellips,angle-90),x2,y2,color2,color2); }
Voila l'exemple avec draw_ellipse_color, jugez du lag, mais draw_ellipse lag pas. testez le : http://www.zshare.net/download/ellipse-gm6.html |
|