用于找出圆周上的像素坐标的算法

时间:2009-05-29 09:15:47

标签: math geometry pixels

如果我知道圆心,圆的半径和垂直角的像素坐标,我如何在圆周上找出一定程度的像素值。 基本上,我试图在不同时间(1点钟,2点钟等)画一个时钟的手

5 个答案:

答案 0 :(得分:19)

h为0到12之间的浮点数(h=2.25为02:15等)的小时数。(cX,cY)是中心的坐标。 hLengthmLength是时针和分针的长度。

// 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);

答案 1 :(得分:9)

圆的中心为(X0, Y0),半径为R,与x轴的角度为θ:

X1 = (R * cos theta) + X0

Y1 = (R * sin theta) + Y0

答案 2 :(得分:4)

如果(x1,y1)是圆周上的一个点而(x,y)是中心,那么x1 = x + r * cos(angle)y1 = y + r * sin(angle)

答案 3 :(得分:0)

如果中心位于左下角的x0,y0和0,0 iz,则1点位于x0 + r sin(2π/ 3),y0 + r cos (2π/ 3)。

答案 4 :(得分:-1)

从中心绘制线条,用sin计算y坐标,cos计算x坐标(两者都乘以手的长度)。

Wikipedia has more information on how sin and cos "work"