Подтвердить что ты не робот

Как вычислить точку с заданным центром, углом и радиусом?

В этом вопросе SO кто-то попросил рассчитать угол из трех точек. Мне нужно сделать что-то противоположное.

Я хочу нарисовать часы, и у меня есть крошечные изображения. Художественный чувак сделал 60 из них, каждый с индивидуальной и точной тенью. Таким образом, существует 60 различных изображений размером 10x10 точек, которые уже правильно повернуты в центре этого квадрата.

Итак, каждые 6 градусов должно быть размещено одно тиковое изображение. Мне просто нужно вычислить координату x/y на основе центральной точки, радиуса и угла.

Итак, у меня есть:

  • центральная точка
  • радиус
  • угол

Есть ли простой способ вычислить координату x/y с этим? Может быть, cocoa -touch уже имеет полезную функцию или метод для этого?

4b9b3361

Ответ 1

пусть a - угол, (x, y) центр и r радиус, то ваша точка будет в

(x + r*cos(a), y + r*sin(a))

Ответ 2

В математике вычислить декартовы координаты из полярных координат:

x = r * cos(A) + x0;
y = r * sin(A) + y0;

где (x0, y0) - центр вашего круга, r - радиус, а A - угол.

Но, который предполагает соглашение о координатах математики, т.е. x увеличивается по мере продвижения вправо, y увеличивается по мере продвижения вверх. Это значение по умолчанию для представлений в Mac OS X Cocoa, но я не знаю, является ли оно одинаковым на iPhone.

Также углы начинаются с 3 часов и идут против часовой стрелки, т.е. 3 o часы - 0 градусов, 12 часов - 90 градусов, 9 часов - 180 градусов и 6 часов - 270 градусов.

Кроме того, функции синуса и косинуса C работают в радианах.

Ответ 3

Ваше изображение (в центре) должно быть помещено в точку (X, Y), где (x, y) - координаты центральной точки, а r - радиус

X = x + (r/2)*cos(angle);
Y = y + (r/2)*sin(angle);