software:qview:qview_6:qcl_library:vi10addarc2

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
software:qview:qview_6:qcl_library:vi10addarc2 [2019/08/29 17:01] – creata - modifica esterna 127.0.0.1software:qview:qview_6:qcl_library:vi10addarc2 [2024/09/17 10:04] (versione attuale) – [IMPLEMENTAZIONE] qem214
Linea 1: Linea 1:
 +====== VI10AddArc2 ======
 +
 +**V = **//Vector//
 +
 +**I = **//Image//
 +
 +Funzione utilizzata per la gestione della funzionalità Vector Image (oggetto presente su alcune versioni di Qpaint).
 +
 +La funzione VI10AddArc2 __aggiunge il comando ARC2 in coda alle istruzioni da processare nel Buffer per eseguire il disegno__.\\
 +Il comando ARC2 traccia un arco di tipo II o IV (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|
 +|{{:software:qview:qview_6:qcl_library:vi10addarc2:vi10addarc2_01.png?nolink200|}}|
 +
 +===== IMPLEMENTAZIONE =====
 +
 +**VI10AddArc2 (awBuffer, Coord_X, Coord_Y, Radius)**
 +
 +Parametri:
 +
 +^ IN/OUT  ^ TIPO VARIABILE      ^ NOME DI ESEMPIO  ^  DIM  ^  DESCRIZIONE                                                                                                          ^
 +|  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.                  |
 +
 +=== Esempio ===
 +
 +//TASK_00//
 +<code QCL>
 +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 ARC2
 +
 +Coord_Y = 50
 +
 +Radius = 200
 +
 +VI10AddArc2(awBuffer, Coord_X, Coord_Y, Radius) ;Aggiunge il comando ARC2
 +
 +;... 
 +
 +WAIT 1
 +JUMP MAIN
 +
 +END
 +</code>
 +
 +=== Note ===
 +
 +<wrap hi><wrap em>ARCO TIPO 1 E 3 -> VI10AddArc1 \\ 
 +
 +ARCO TIPO 2 E 4 -> VI10AddArc2</wrap></wrap>
 +
 +  * Considerata la figura sottostante:
 +
 +{{:software:qview:qview_6:qcl_library:arcs_scheme.jpg?nolink900|}} \\ 
 +
 +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 ''VI10AddArc2'' si incarica di eseguire le traiettorie che appartengono alla circonferenza con il centro più "alto" fra le due (coordinata Y0 maggiore), quindi, nel disegno,  la circonferenza con centro in ''C1''. Questa circonferenza può eseguire la traiettoria II oppure la traiettoria IV. <wrap hi>La traiettoria II</wrap> viene eseguita se si imposta un <wrap hi>raggio negativo</wrap>, mentre la <wrap hi>traiettoria IV</wrap> viene eseguita se si imposta un <wrap hi>raggio positivo</wrap>.\\  
 +
 +Se invece si intende eseguire un arco di circonferenza che appartenga alla circonferenza con centro in Co come quello rappresentato dalle traiettorie I o III, è necessario utilizzare la funzione [[software:qview:qview_6:qcl_library:vi10addarc1|VI10AddArc1]], con la quale, impostando un raggio negativo, si effettuerà la traiettoria I, mentre impostando un raggio positivo si effettuerà la traiettoria III.