2013-04-07 14 views
7

Quando si implementano "s" (arco cubico relativo Bezier) e "t" (arco relativo di Bezier quadratico) le coordinate del punto di controllo definito implicitamente sono utilizzate come base per le coordinate relative successive o no?Comandi di percorso SVG "s" e "t"

In altre parole consideri il seguente arco cilindrata:

cubic arc example

  • cp punto corrente
  • ip punto di controllo implicita calcolata mirroring ultimo punto di controllo dal precedente arco
  • ep punto di controllo esplicito
  • fp poin finale t dell'arco

dovrebbero essere le coordinate relative ep uso come base di ip (punto implicito) oppure dovrebbero essere relativo cp (punto corrente del percorso)?

Nella documentazione ufficiale ho trovato questo non chiaro e nessun esempio che utilizza le coordinate relative in questi casi.

+0

Puoi solo confermare che stai parlando delle curve di Bezier? Lei parla di "arco" nella domanda. –

+0

Scusa ... sì, sto parlando degli archi cubici e quadratici di Bezier ('s' e' t' codici degli elementi 'percorso' di svg) – 6502

risposta

2

Le documentation here afferma che un maiuscola S aspetta coordinate assolute, mentre una minuscola s aspetta coordinate relative. Simile per T (assoluto) e t (relativo).

EDIT - relativa alla corrente punto - scusate, avrebbe dovuto essere esplicito.Lo stesso documento collegato sopra include quanto segue:

Per le versioni relativi dei comandi, tutte coordinate valori sono relativi al punto corrente all'inizio del comando

+1

Ok. Ma relativo a CHE COSA? Al punto corrente o al punto di controllo implicito? Le coordinate 'ep' nell'immagine sono relative a' ip' o a 'cp'? – 6502

+0

Quindi vuoi dire che anche le coordinate 'fp' sono relative a' cp'? – 6502

+0

Vedi modifica - i documenti non sono chiari ma * è * li ... –

8

Le regole sono

  1. in modalità relative coordinate sono relative al punto corrente all'inizio del comando

  2. .515.053.691,36321 milioni
  3. In caso di un comando "catena" quando più coordinate sono date senza ripetere il comando del punto base viene aggiornato dopo ogni ripetizione

Ad esempio la semplice percorso

m 100,100 100,0 0,100 -100,0 0,-100 

descrive un quadrato da (100.100) a (200.200)

simple relative path

(il "line-in" l comando mostrato in rosso è implicita se multiplo coordinate coppie sono forniti per un comando "m")

Il punto importante è che la relativa "base" per coordinate è aggiornata a notare ogni punto di svolta. Questo è un po 'ingannevole nella documentazione perché la sintassi del comando m è descritta come accettata come parametro (x,y)+ in modo che il lettore possa essere indotto a pensare che la base relativa cambierà solo alla fine dell'intera sequenza di punti.

Consideriamo ora il percorso cubica di Bézier

m 100,100 c 25,25 75,25 100,0 s 25,125 0,100 -75,-25 -100,0 

bezier arcs example

I due punti di controllo rossi sono calcolati automaticamente dal mirroring l'ultimo punto di controllo. Il comando rosso s è implicito perché sono seguiti quattro punti s.

Per un comando arco Bezier cubico i due punti di controllo e il punto finale sono relativi allo stesso punto di inizio (non sono relativi al precedente in sequenza) ma ad ogni arco viene aggiornato il punto base per il calcolo delle coordinate relative .

Problemi correlati