Как получить координаты x/y первой и последней точек нарисованной дуги относительно верхнего левого угла холста?

StackOverflow https://stackoverflow.com/questions/3671611

Вопрос

У меня есть квадратный холст шириной 100 и высотой 100.Внутри этого квадрата я рисую такую ​​дугу:

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();

Вопрос в том:Как получить координаты x/y первой и последней точек нарисованной линии относительно верхнего левого угла холста?

Это было полезно?

Решение

Отправная точка тривиальна (x + radius, y).Конечная точка, согласно простой тригонометрии, (x + radius*cos(angle), y + radius*sin(angle)).Обратите внимание, что начальная точка в этом случае является частным случаем более общей конечной точки, где angle равен нулю.Эти значения также необходимо округлить до ближайшего целого числа по очевидным причинам.

(Обратите внимание, что это применимо только в том случае, если anticlockwise Аргумент ложный, и предполагается, что все координаты отсчитываются сверху слева.Если anticlockwise верно, поменяйте знак второй компоненты координаты y.Если координаты измерены из другого угла, примените простую арифметику, чтобы исправить это.Также обратите внимание, что это совершенно не так для любого настоящего математика.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top