Математика, стоящая за этим вопросом, была задана несколько раз, так что я не специально, что мне нужно. Скорее, я пытаюсь запрограммировать уравнение для определения этих точек в цикле в JavaScript, чтобы я мог отображать точки равномерно по кругу.
Итак, с уравнениями для положений X и Y точек:
pointX = r * cos(theta) + centerX
pointY = r * sin(theta) + centerY
Я мог бы вычислить его с помощью этого:
var centerX = 300;
var centerY = 175;
var radius = 100;
var numberOfPoints = 8;
var theta = 360/numberOfPoints;
for ( var i = 1; i <= numberOfPoints; i++ ) {
pointX = ( radius * Math.cos(theta * i) + centerX );
pointY = ( radius * Math.sin(theta * i) + centerY );
// Draw point ( pointX , pointY )
}
И он должен дать мне координаты x, y по периметру для 8 точек, разбросанные на 45 ° друг от друга. Но это не работает, и я не понимаю, почему.
Это результат, который я получаю (используя элемент Canvas HTML5). Точки должны находиться на внутреннем красном круге, так как у этого есть
Неверно:
Когда это "должно" выглядеть так (хотя это всего лишь 1 балл, помещается вручную):
Правильно:
Может ли кто-нибудь помочь мне? Прошло много лет с тех пор, как я взял триггер, но даже глядя на другие примеры (с разных языков), я не понимаю, почему это не работает.