алгоритм определения координат пикселей на окружности
Как узнать значение пикселя в определенной степени на окружности круга, если я знаю координаты пикселей центра круга, радиус круга и перпендикулярный угол. В принципе, я пытаюсь нарисовать стрелки часов в разное время (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 "работают".