алгоритм определения координат пикселей на окружности

Как узнать значение пикселя в определенной степени на окружности круга, если я знаю координаты пикселей центра круга, радиус круга и перпендикулярный угол. В принципе, я пытаюсь нарисовать стрелки часов в разное время (1 o clock , 2 O clock и т. д. )

5 ответов


пусть h час как число с плавающей запятой (h=2.25 будет 02:15, и т. д.) между 0 и 12. (cX,cY) - координаты центра. hLength и mLength длины часовых и минутных стрелок.

// Hour hand
hAngle = 2.0*Pi*h/12.0; // 0..12 mapped to 0..2*Pi
hX = cX + hLength * sin(hAngle);
hY = cY - hLength * cos(hAngle);

// Min hand
mAngle = 2.0*Pi*h; // 0..1 mapped to 0..2*Pi, etc.
mX = cX + mLength * sin(mAngle);
mY = cY - mLength * cos(mAngle);

где-центр окружности (X0, Y0) радиус R и угол с осью x-это тета:

X1 = (R * cos theta) + X0

и

Y1 = (R * sin theta) + Y0

Если (x1,y1) является точкой на окружности и (x,y) является центром, то x1 = x + r * cos(angle) и y1 = y + r * sin(angle)


Если центр находится в x0, y0 и 0,0 iz в левом нижнем углу, то 1 час находится в x0 + r sin (2π / 3), y0+rcos (2π/3).


нарисуйте линии от центра к координатам, вычисленным с помощью sin для координат y и cos для координат x (оба умножены на длину руки).

Википедия имеет больше информации о том, как грех и cos "работают".