Почему Cosine используется для расчета значений X и синусных значений Y для дуги?

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

Вопрос

Я пытаюсь понять математику на этой демонстрации Raphael.js:

http://raphaeljs.com/pie.js.

Оформить заказ Сектор метода:

function sector(cx, cy, r, startAngle, endAngle, params) {
    var x1 = cx + r * Math.cos(-startAngle * rad),
        x2 = cx + r * Math.cos(-endAngle * rad),
        y1 = cy + r * Math.sin(-startAngle * rad),
        y2 = cy + r * Math.sin(-endAngle * rad);
    return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}

Это фактическая демонстрация:http://raphaeljs.com/pie.html.

Моя математика - это немного ржаво, и я пытаюсь понять функцию сектора - учитывая параметры Startangle и Engange (каждое начало и конечные значения точек от 0 до 360 рисунок дуги), почему эта работа работает?

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

Решение

Все зависит от того, как вы относитесь к startAngle и endAngle. Отказ Похоже, что это относится к ним, начиная с горизонтального вправо (т.е. угла 0 указывает на восток) и ходить на часовой стрелки (поэтому угол 45 градусов указывает на юго-восток.

Обычно в математике мы рассматриваем углы, начиная с горизонтали вправо, но увеличиваем против часовой стрелки ... Но если вы запрашиваете нематематика, чтобы нарисовать угол, они вполне могут лечить его от вертикально вверх (т.е. север), увеличивая по часовой стрелке. Это похоже, что это принимает смесь :) Здесь нет действительно «неправильного» или «правильного» ответа - это все вопрос определения.

Поскольку фотографии популярны, вот три системы, которые я описал, каждый предполагающий, что строка длина r:

Нормальная математика: против часовой стрелки от оси X

First diagram
(источник: arachsys.com.)

Спрашивать человека на улице, чтобы нарисовать угол (по часовой стрелке от оси Y)

Second diagram

Углы, используемые этим кодом (по часовой стрелке от оси x)

Third diagram

Другие советы

Просто посмотрите, какой грех и потому что на самом деле иметь в виду По кругу:alt text

Если у вас есть точка на кругу, который образует угол альфа, COS ALPHA - это X-часть точки, которую SIN Alpha - это часть Y.

Эта иллюстрация объясняет, почему угол отрицается.alt text

Это значит, что вы можете теперь указать по часовой стрелке Углы, которые предпочитают большинство людей с аналоговыми часами.

Поскольку произвольная точка на окружность с центром (Cx, CY) и радиусом R имеет следующую координату (она непосредственно следует из геометрических определений COS и SIN и соотношение между длинами соответствующего катета и гипотенуза):

x = cx + R*cos(a)
y = cy + R*sin(a) for  0 <= a < 2π

Таким образом, установка пределов на угол А вы можете определить произвольную дугу.

Если вы берете 0 ° как горизонтальные с X увеличением и на 90 ° как вертикальные с увеличением y, тогда как:

cos(0) = 1
sin(0) = 0

cos(90) = 0
sin(90) = 1

Вы можете варьировать значение x, умножив его на косинус и варьируйте значение Y, умножая его синусом.

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