[successivo] [precedente] [inizio] [fine] [indice generale]


Sezione 10.   Particolarità

10.1   Poligoni

La possibilità di tracciare dei poligoni estende non poco le capacità grafiche del programma Jgraph: è sufficiente applicare l'attributo poly alla curva da tracciare. Gli attributi pfill e pcfill permettono inoltre di specificare una scala di grigio o un colore per la campitura del poligono. L'attributo linethickness consente di controllare lo spessore del perimetro.(1) È possibile campire il poligono con un disegno a strisce in alternativa alla campitura solida mediante ppattern stripe inclinazione, ove inclinazione controlla l'inclinazione delle strisce. Infine, se si indica -1 come colore di campitura del poligono viene tracciato solamente il bordo mentre l'interno rimane vuoto, il che può essere talvolta desiderabile.

Il listato 10.1 e la figura 10.1 presentano un esempio con alcuni poligoni di diversa campitura. Si osservi che Jgraph traccia le curve nell'ordine indicato, sicché è possibile prevedere le eventuali sovrapposizioni.

Listato 10.1. Jgraph: poligoni.

newgraph

xaxis min 0 max 10 size 5
yaxis min 0 max 10 size 5

(* Draw a red trapezoid -- setting both the fill and color to be red means
   that the entire trapezoid, and not just the interior, will be red. *)

newline poly pcfill 1 0 0 color 1 0 0
   pts 1 1  3 1   2.5 2  1.5 2

(* Draw a big black square *)

newline poly pfill 0 pts 3 3  10 3  10 10  3 10

(* Draw a thick yellow triangle with a purple, striped interior inside the black
   square *)

newline poly linethickness 5 color 1 1 0 pcfill 1 0 1 ppattern stripe 60 
   pts  4 4   8 4  6 6 

(* Draw a blue triangle with a thick border no fill *)

newline poly linethickness 10 color 0 0 1 pfill -1 pts 4 9  6 5 8 8 

Figura 10.2.

f-poly-jgr

10.2   Curve di Bézier

Si possono generare delle linee curve con Jgraph se si interpretano alcuni dei punti indicati come punti di controllo per una curva di Bézier.

Nella sezione 13 vengono indicati dei possibili spunti di approfondimento sulla questione, ma si consideri che per definire una curva di Bézier con Jgraph servono almeno quattro punti, e in generale è possibile tracciare una curva di Bézier mediante 3*n+1 punti di controllo, di cui 2*n di controllo e i rimanenti n+1 di passaggio della curva.(2)

Il listato 10.3 e la figura 10.4 fornuscono un esempio in cui viene disegnato un pallone da football americano (molto stilizzato a dire il vero) mediante curve di Bézier.

Listato 10.3. Jgraph: curve di Bézier.

newgraph 
xaxis min 0 max 10 nodraw
yaxis min 0 max 10 nodraw

(* Draw the outline of the football *)
newline bezier poly pcfill .543 .270 .074 pts
  0 5   3 10   7 10    10 5
        7 0    3 0     0 5

(* Draw the main thread *)

newline bezier linethickness 4 gray 1 pts
  3 7 4.5 8 5.5 8 7 7

(* Draw the crossthreads *)

copycurve nobezier pts 3.5 6.7 3.3 7.5
copycurve pts 6.5 6.7 6.7 7.5
copycurve pts 4.2 7.1 4.1 7.9
copycurve pts 5.8 7.1 5.9 7.9
copycurve pts 5 7.3  5 8.1

Figura 10.4.

f-football-jgr


Informatica per sopravvivere 2006.02.18 --- Copyright © 2004-2006 Massimo Piai -- <pxam67 (ad) virgilio·it>


1) in unità assolute PostScript, valore predefinito 1,0

2) con n intero positivo


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome particolarita.html

[successivo] [precedente] [inizio] [fine] [indice generale]

Valid ISO-HTML!

CSS validator!