8

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

4

5 回答 5

19

h小时为 0 到 12 之间的浮点数(h=2.25将是 02:15 等)。(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);
于 2009-05-29T09:35:17.350 回答
9

其中圆心为(X0, Y0),半径为R,与 x 轴的夹角为 theta:

X1 = (R * cos theta) + X0

Y1 = (R * sin theta) + Y0
于 2009-05-29T09:24:46.920 回答
4

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

于 2009-05-29T09:22:06.613 回答
0

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

于 2009-05-29T09:22:36.877 回答
-1

从中心画线到用siny 坐标和cosx 坐标计算的坐标(两者都乘以手的长度)。

维基百科有更多关于 sin 和 cos 如何“工作”的信息。

于 2009-05-29T09:23:22.507 回答