Come faccio ad avere X / Y coordinate del primo e l'ultimo punto del tratto dell'arco rispetto al alto a sinistra della tela?
-
01-10-2019 - |
Domanda
Ho una tela quadrata con una larghezza di 100 e un'altezza di 100. In quella piazza traggo un arco in questo modo:
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.clearRect(0,0,100,100) // clears "myCanvas" which is 100pixels by 100 pixels
ctx.beginPath();
ctx.arc( 50, 50, 30, 0, Math.PI*2/6 , false )
ctx.stroke();
La domanda è: come faccio ad avere X / Y coordinate del primo e l'ultimo punto della linea tracciata rispetto al alto a sinistra della tela
Soluzione
Il punto di partenza è banalmente (x + radius, y)
. Il punto finale è, per trigonometrics semplice, (x + radius*cos(angle), y + radius*sin(angle))
. Si noti che il punto di partenza in questo caso è un caso particolare del punto finale più generale, con angle
uguale a zero. Questi valori devono anche essere arrotondato all'intero più vicino, per ovvie ragioni.
(nota che questo vale solo quando l'argomento anticlockwise
è falso, ed assumendo tutte le coordinate sono misurate dalla parte superiore sinistra. Se anticlockwise
è vero, invertire il segno del secondo componente della coordinata y. Se le coordinate sono misurate da un altro angolo, applicare aritmetica semplice per correggere questo. si noti inoltre che questo è completamente indietro per una reale matematico.)