Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Comment dessiner rapidement un arc d'ellipse ? Ven 1 Juin 2018 - 20:41 | |
| Bonsoir.
Dans le cadre de la création d'un planisphère, j'aurais besoin d'une fonction ultra rapide de dessin d'arcs d'ellipses multiples.
Panoramic ne permet pas d'écrire une telle fonction qui s'exécuterait dans un délai raisonnable.
J'ai bien testé les commandes 2d_poly, mais le délai est vraiment très long.
Merci de votre aide.
| |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment dessiner rapidement un arc d'ellipse ? Ven 1 Juin 2018 - 21:45 | |
| Une petite sub dans mes archives, avec un exemple d'utilisation vite fait: - Code:
-
DIM x%,y%,w%,h%,d%,f%,ff%,axe% HEIGHT 0,600 PICTURE 1: FULL_SPACE 1 2D_TARGET_IS 1: 2D_PEN_WIDTH 2 axe% = 200: ' axe vertical des tracés y% = 20: ' sommet de l'enveloppe h% = 300: ' dimensions de l'enveloppe d% = 90: f% = 270: ' angles début et fin ff% = 1: ' figure ouverte 2D_LINE axe%,y%,axe%,y%+h%: ' axe FOR x% = axe%-150 TO axe% STEP 50 w% = 2*(axe%-x%) Ellipse_arc(x%,y%,w%,h%,d%,f%,ff%) NEXT x% d% = 270: f% = 90 FOR x% = axe%+50 TO axe%+150 STEP 50 w% = 2*(x%-axe%) Ellipse_arc(x%-w%,y%,w%,h%,d%,f%,ff%) NEXT x% END ' ============================================================================== SUB Ellipse_arc(x%,y%,w%,h%,d%,f%,ff%) ' Tracé d'un arc d'une ellipse vide en x%,y% de la cible 2d, inscrite dans w%,h% ' Début d% degrés, fin f% degrés (de 0 à 360 degrés dans le sens trigonométrique) ' Si ff% = 1: figure fermée ' Tracé de la couleur courante et de l'épaisseur (1 à 20) courante DIM_LOCAL rx%,ry%,xc%,yc%,xdp%,ydp%,ad,af,p,t rx% = w%/2: ry% = h%/2: xc% = x%+rx%: yc% = y%+ry% p = PI/180: ad=d%*p: af=f%*p xdp% = xc%+rx%*COS(ad): ydp% = yc%-ry%*SIN(ad): ' point de départ du tracé 2D_POLY_FROM xdp%,ydp% IF ad > af FOR t = ad TO 2*PI STEP p 2D_POLY_TO xc%+rx%*COS(t),yc%-ry%*SIN(t) NEXT t ad = 0 END_IF FOR t = ad TO af STEP p 2D_POLY_TO xc%+rx%*COS(t),yc%-ry%*SIN(t) NEXT t IF ff%=1 THEN 2D_POLY_TO xdp%,ydp%: ' fermeture de l'arc END_SUB ' ============================================================================== Pour la rapidité d'exécution, c'est à voir... ça dépend évidemment de la quantité à tracer. | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Comment dessiner rapidement un arc d'ellipse ? Ven 1 Juin 2018 - 22:51 | |
| Salut à tous ! Je trouve que 2D_POLY est plutôt rapide : Création de 100 arcs ellipses aléatoires en 1 seconde : - Code:
-
maximize 0 DEGREES DIM i%,j%,x%,y%,x1%,y1%,d%,a%
FOR j%=1 to 100 x1%=RND(600) y1%=RND(600) d%=RND(90) a%=RND(180) 2D_POLY_FROM 50*SIN(d%)+x1%,20*COS(d%)+y1% FOR i% = d% to a% X%=50*SIN(i%) y%=20*COS(i%) 2D_POLY_TO x%+x1%,y%+y1% NEXT i% NEXT j% CAPTION 0,"Fini !" END | |
|
Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Comment dessiner rapidement un arc d'ellipse ? Sam 2 Juin 2018 - 7:29 | |
| Bonjour.
Merci de votre aide, cela me convient très bien. | |
|
Contenu sponsorisé
| Sujet: Re: Comment dessiner rapidement un arc d'ellipse ? | |
| |
|