2011-01-02 1 views
11

Se ho un contesto Canvas HTML e faccio:Trova il punto corrente sul percorso per il contesto HTML Canvas?

ctx.beginPath(); 
ctx.moveTo(10,10); 
ctx.lineTo(20,30); 
ctx.closePath(); 
ctx.stroke(); 

... una linea è tracciata tra 10,10 e 20,30. Supponiamo che io sono questo:

ctx.beginPath(); 
ctx.moveTo(10,10); 
myFunction(ctx); 

C'è un modo per myFunction() per scoprire che il percorso 'puntatore' è attualmente al 10,10?

+0

Perché è necessario myFunction() per conoscere la posizione corrente di "cursore"? Si noti che il contesto funziona come una macchina a stati. Se chiami "ctx.lineTo (20,30)" ecc. Su myFunction dovrebbe funzionare. –

+0

@bebraw Perché voglio scrivere ['ctx.dashTo (x, y, ...)'] (http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas/4577326#4577326); per questo, ho bisogno di sapere dove sono, oltre a dove sto andando, per calcolare vari punti lungo la strada. – Phrogz

+0

Righto. Penso che in questo caso potresti stare meglio implementando un wrapper per Context. Conserva i dati che ti servono e estendi l'API come preferisci. Se vuoi ti posso fornire un semplice esempio per iniziare meglio. :) –

risposta

4

Per quanto ne so, non esiste un modo diretto per accedere agli argomenti passati a vari metodi ctx (ad esempio moveTo in questo caso). Tuttavia, puoi eseguire il wrapping dell'API di contesto in una classe a sé stante. Vedi [1] e [2] come riferimento.