[Gex] - GeometryExt
Inviato: 23/01/2012, 18:17
Buona sera a tutti!
Ho sviluppato una .gex contenente alcune funzioni aggiuntive di disegno da aggiungere a quelle già integrate. Non ne sono molte e ho intenzione di farne delle altre in futuro.
Download gex
Download esempio .gm8
Ecco una lista delle funzioni presenti nella gex:
DrawEllipseExt(xc, yc, r_max, r_min, rot, n_seg, line_type);
DrawArchimedeanSpiral(xc, yc, r, n_spire, forma);
DrawArchimedeanSpiralExt(xc, yc, r, n_spire, forma, rot, larghezza_linea);
DrawFermatSpiralExt(xc, yc, r, n_spire, forma, rot, larghezza_linea);
Mi sono basato quasi interamente su formule matematiche relative a crechi ed ellissi. In particolare con la funzione DrawEllipseExt è possibile non solo disegnare un'ellisse ruotata (cosa che con la funzione di GM draw_ellipse non è possibile fare) ma anche creare molte altre forme geometriche poligonali come ad esempio triangoli, rettangoli, quadrati, esagoni, cerchi (se per cerchio intendiamo un insieme di segmenti), ecc..
Ho sviluppato una .gex contenente alcune funzioni aggiuntive di disegno da aggiungere a quelle già integrate. Non ne sono molte e ho intenzione di farne delle altre in futuro.
Download gex
Download esempio .gm8
Ecco una lista delle funzioni presenti nella gex:
DrawEllipseExt(xc, yc, r_max, r_min, rot, n_seg, line_type);
- Disegna un'ellisse formato da n_seg segmenti con centro (xc,yc) ruotata di rot gradi di raggio maggiore r_max e raggio minore r_min;
-line_type è lo stile di disegno della figura e può essere 0, 1 o 2.- 0: solo contorno
1: effetto "wireframe"
2: riempito
- 0: solo contorno
DrawArchimedeanSpiral(xc, yc, r, n_spire, forma);
- Disegna una spirale di Archimede formata da n_spire spire, ognuna delle quali è formata da un numero di
segmenti pari al parametro "forma". La spirale avrà come centro il punto (xc,yc) e raggio r.
-forma rappresenta la precisione con la quale viene disegnata la figura e deve essere compresa tra 3 e 64.
In pratica indica di quanti "lati" si compone la figura ogni 360 gradi (ogni spira). Se ad esempio la spirale deve essere
a forma di triangolo il valore di forma sarà 3, se deve essere a forma di esagono deve essere 6, ecc.
DrawArchimedeanSpiralExt(xc, yc, r, n_spire, forma, rot, larghezza_linea);
- Disegna una spirale di Archimede formata da n_spire spire, ognuna delle quali è formata da un numero di
segmenti pari al parametro "forma". La spirale avrà come centro il punto (xc,yc), raggio r e sarà ruotata di
rot gradi.
larghezza_linea specifica inoltre lo spessore della linea di disegno
-forma rappresenta la precisione con la quale viene disegnata la figura e deve essere compresa tra 3 e 64.
In pratica indica di quanti "lati" si compone la figura ogni 360 gradi (ogni spira). Se ad esempio la spirale deve essere
a forma di triangolo il valore di forma sarà 3, se deve essere a forma di esagono deve essere 6, ecc.
- Disegna una spirale di Fermat formata da n_spire spire, ognuna delle quali è formata da un numero di
segmenti pari al parametro "forma". La spirale avrà come centro il punto (xc,yc) e raggio r.
-forma rappresenta la precisione con la quale viene disegnata la figura e deve essere compresa tra 3 e 64.
In pratica indica di quanti "lati" si compone la figura ogni 360 gradi (ogni spira). Se ad esempio la spirale deve essere
a forma di triangolo il valore di forma sarà 3, se deve essere a forma di esagono deve essere 6, ecc.
DrawFermatSpiralExt(xc, yc, r, n_spire, forma, rot, larghezza_linea);
- Disegna una spirale di Fermat formata da n_spire spire, ognuna delle quali è formata da un numero di
segmenti pari al parametro "forma". La spirale avrà come centro il punto (xc,yc), raggio r e sarà ruotata di
rot gradi.
-larghezza_linea specifica inoltre lo spessore del disegno
-forma rappresenta la precisione con la quale viene disegnata la figura e deve essere compresa tra 3 e 64.
In pratica indica di quanti "lati" si compone la figura ogni 360 gradi (ogni spira). Se ad esempio la spirale deve essere
a forma di triangolo il valore di forma sarà 3, se deve essere a forma di esagono deve essere 6, ecc.
- Disegna una stella di n_punte punte, centrata in (xc,yc).
dimensioni rappresenta la distanza in pixel tra il centro e le punte.
Il numero di punte deve essere >=3. Nel caso venga passato minore di 3 verrà automaticamente portato a 3.
- Disegna una stella di n_punte punte, centrata in (xc,yc) e ruotata di rot gradi.
-r_centro rappresenta la distanza in pixel tra il centro e il poligono interno alla stella.
-lunghezza_punte è invece la distanza tra il centro e le punte.
Giocando con questi due valori la stella assumerà dimensioni e proporzioni diverse.
-rot_punte indica invece l'angolazione dele punte
-line_type è lo stile di disegno della figura e può essere 0, 1 o 2.
0: solo contorno
1: effetto "wireframe"
2: riempito
-line_width è lo spessore della linea del disegno nel caso in cui line_type sia uguale a 0.
Il numero di punte deve essere >=3. Nel caso venga passato minore di 3 verrà automaticamente portato a 3.
Mi sono basato quasi interamente su formule matematiche relative a crechi ed ellissi. In particolare con la funzione DrawEllipseExt è possibile non solo disegnare un'ellisse ruotata (cosa che con la funzione di GM draw_ellipse non è possibile fare) ma anche creare molte altre forme geometriche poligonali come ad esempio triangoli, rettangoli, quadrati, esagoni, cerchi (se per cerchio intendiamo un insieme di segmenti), ecc..