TAMBIXAR

Istruzioni per l'uso del tool di modifica di curve N.U.R.B.S.

In questa sezione verrà illustrato come procedere per disegnare e quindi modificare una curva N.U.R.B.S., indicando le istruzioni e le combinazioni di tasti da utilizzare; verrà inoltre mostrato qualche esempio visivo dei tre diversi algoritmi, per meglio capirne il funzionamento, che potrà poi essere testato nella sezione dedicata all'Applet vera e propria.


Disegnare una curva N.U.R.B.S. :

Come specificato nella parte di teoria, si è deciso di impiegare questa tipologia di curve proprio per avere la possibilità di disegnare delle coniche; questo tipo di costruzione è impossibile da realizzare, dovendo individuare i punti di controllo a mano libera. Si è quindi optato per una modalità che permetta l'inserimento dei parametri della curva direttamente dal codice HTML della pagina che contiene l'Applet, garantendo così l'assoluta precisione nell'assegnazione dei valori.
In questa Applet è stato implementato anche l'utilizzo di un Back-Buffer per eliminare fastidiosi sfarfallii, presenti altrimenti durante il refresh della finestra dell'Applet.


Ecco un esempio, per chiarire come l'Applet riceve i dati per la costruzione della curva:

codice html

Come si può vedere dallo stralcio di codice precedente, il tag "APPLET" inizializza l'applicazione "Curva.class" assegnando una finestra di 500 pixel in larghezza per 300 in altezza. Il tag APPLET, al suo interno, contiene i parametri che permetteranno poi all'applicazione di generare una curva con le caratteristiche volute. Analizziamo ora riga per riga ciò che viene parsato dall'applicazione attingendo dal codice html:

- Parametro "N": contiene due valori, il Numero di Control Point e l'ordine della curva.
- Parametro "pts": triplette che indicano posizione X,Y e peso assegnato al Control Point.
- Parametro "knots": rappresenta il vettore dei nodi.

N.B: i valori dei parametri racchiusi tra " ", sono separati da uno spazio;
il valore delle coordinate X,Y è rapportato alla grandezza della finestra e varia tra 0 e 1,( 0 nessun pixel, 1 tutti i pixel della finestra);
il numero dei nodi del parametro "knot" deve sempre essere uguale a numero dei Control Point + l'ordine della curva.

Per creare una curva differente da quelle predefinite della sezione Applet bisogna modificare la pagina Curva.html con un qualsiasi editor di testo.
Questo FILE contiene la pagina da modificare e tutti i file.class necessari per il funzionamento dell'applicazione.

Come utilizzare i tasti:

Movimento dei Control Point -> tasto sx del Mouse

Per muovere singolarmente i Control Point, basta posizionare il cursore sopra o nelle immediate vicinanze del Punto di Controllo, e tenendo premuto il tasto sinistro del mouse spostare il cursore.

traslazione CP


Selezione del punto sulla curva-> tasto "SHIFT"

Per interagire con la curva è necessario innanzitutto selezionare un punto sulla stessa che sarà poi oggetto delle trasformazioni volute. Per fare questo bisogna premere il tasto "Shift" e far scorrere il cursore del mouse sulla curva; si vedrà così apparire il punto selezionato e un segmento che rappresenta la derivata della curva in quel punto.

selezione punto curva


Tool di traslazione -> tasto "Ctrl"

Per applicare al punto della curva una traslazione basta aver selezionato un punto sulla curva e poi tenendo premuto il tasto "Ctrl", muovere il mouse nella posizione voluta; si noterà il movimento di tutti i Control Point che influenzano la curva in quel punto.

traslazione punti curva


Tool di rotazione -> tasto "Alt"

Per deformare la curva tramite una rotazione incentrata sul punto selezionato bisogna tenere premuto il tasto "Alt" , spostando il mouse verticalmente si va a decrementare o incrementare l'angolo teta di cui si ruoteranno i Control Point.

rotazione punti curva


Tool di rotazione-traslazione -> tasto "Alt+Ctrl"

L'ultimo tool è un tipo di modifica ibrido tra due precedenti, si ottiene premendo contemporaneamente i tasti "Alt" e "Ctrl" e permette di ottenere un effetto simile a una rototraslazione incentrata sul punto medio che congiunge i Control Point tra i quali il punto della curva selezionato è compreso.

tras-rot punti curva


Valid XHTML 1.0 Strict ! Valid CSS !