VI10AddArc1
V = Vector
I = Image
Funzione utilizzata per la gestione della funzionalità Vector Image (oggetto presente su alcune versioni di Qpaint).
La funzione VI10AddArc1 aggiunge il comando ARC1 in coda alle istruzioni da processare nel Buffer per eseguire il disegno.
Il comando ARC1 traccia un arco di tipo I
o III
(vedere il disegno nelle note) dalle coordinate attuali alle coordinate x
e y
passate tramite la funzione.
Le coordinate x
e y
vengono inoltre impostate, a fine istruzione, come coordinate attuali.
Buffer |
---|
![]() |
IMPLEMENTAZIONE
VI10AddArc1 (awBuffer, Coord_X, Coord_Y, Radius)
Parametri:
IN/OUT | TIPO VARIABILE | NOME DI ESEMPIO | DIM | |
---|---|---|---|---|
IN | ARRSYS / ARRGBL | awBuffer | W | Array che funge da buffer per istruzioni/dati |
IN | CONST/ GLOBAL | Coord_X | W | Variabile contenente il valore della coordinata X del punto finale dell'arco, all'interno dell'oggetto Vector Image. |
IN | CONST/ GLOBAL | Coord_Y | W | Variabile contenente il valore della coordinata Y del punto finale dell'arco, all'interno dell'oggetto Vector Image. |
IN | CONST/ GLOBAL | Radius | W | Variabile contenente il valore del raggio della circonferenza sulla quale si vuole tracciare l'arco. |
Nota: se il valore del raggio è minore del minimo richiesto la funzione disegnerà un arco e due punti esterni per indicare l'errore, vedere la sezione errore.
Esempio
TASK_00
MAIN: VI10InitBuffer (awBuffer) ;Inizializza il Buffer Color = 0 ;Imposta colore nero VI10AddPen(awBuffer, Color) ;Aggiunge il comando PEN Coord_X = 0 ;Imposta le coordinate per il SET Coord_Y = 0 VI10AddSet(awBuffer, Coord_X, Coord_Y) ;Aggiunge il comando SET Coord_X = 100 ;Imposta le coordinate e il raggio per ARC1 Coord_Y = 50 Radius = 200 VI10AddArc1 (awBuffer, Coord_X, Coord_Y, Radius) ;Aggiunge il comando ARC1 ;... WAIT 1 JUMP MAIN END
Note
ARCO TIPO 1 E 3 → VI10AddArc1
ARCO TIPO 2 E 4 → VI10AddArc2
-
Considerata la figura sottostante:
L'arco di circonferenza tra il punto A
e il punto B
può essere eseguito attraverso una delle quattro traiettorie I, II, III o IV.
La funzione VI10AddArc1
si incarica di eseguire le traiettorie che appartengono alla circonferenza con il centro più “basso” fra le due (coordinata Y0 minore), quindi, nel disegno, la circonferenza con centro in C0
. Questa circonferenza può eseguire la traiettoria I oppure la traiettoria III. La traiettoria I viene eseguita se si imposta un raggio negativo, mentre la traiettoria III viene eseguita se si imposta un raggio positivo.
Se invece si intende eseguire un arco di circonferenza che appartenga alla circonferenza con centro in C1
come quello rappresentato dalle traiettorie II o IV, è necessario utilizzare la funzione VI10AddArc2, con la quale, impostando un raggio negativo, si effettuerà la traiettoria II, mentre impostando un raggio positivo si effettuerà la traiettoria IV.
Errore
Se il valore del raggio non è sufficiente a descrivere l'arco viene rappresentato un arco standard con affiancati due punti per indicare l'errore.