Ответ 1
пусть a - угол, (x, y) центр и r радиус, то ваша точка будет в
(x + r*cos(a), y + r*sin(a))
В этом вопросе SO кто-то попросил рассчитать угол из трех точек. Мне нужно сделать что-то противоположное.
Я хочу нарисовать часы, и у меня есть крошечные изображения. Художественный чувак сделал 60 из них, каждый с индивидуальной и точной тенью. Таким образом, существует 60 различных изображений размером 10x10 точек, которые уже правильно повернуты в центре этого квадрата.
Итак, каждые 6 градусов должно быть размещено одно тиковое изображение. Мне просто нужно вычислить координату x/y на основе центральной точки, радиуса и угла.
Итак, у меня есть:
Есть ли простой способ вычислить координату x/y с этим? Может быть, cocoa -touch уже имеет полезную функцию или метод для этого?
пусть a - угол, (x, y) центр и r радиус, то ваша точка будет в
(x + r*cos(a), y + r*sin(a))
В математике вычислить декартовы координаты из полярных координат:
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 работают в радианах.
Ваше изображение (в центре) должно быть помещено в точку (X, Y), где (x, y) - координаты центральной точки, а r - радиус
X = x + (r/2)*cos(angle);
Y = y + (r/2)*sin(angle);