【发布时间】:2009-05-29 09:15:47
【问题描述】:
如果我知道圆心的像素坐标、圆的半径和垂直角,我如何在圆的圆周上找到一定程度的像素值。 基本上,我正在尝试在不同时间(1 点钟、2 点钟等)绘制时钟的指针
【问题讨论】:
如果我知道圆心的像素坐标、圆的半径和垂直角,我如何在圆的圆周上找到一定程度的像素值。 基本上,我正在尝试在不同时间(1 点钟、2 点钟等)绘制时钟的指针
【问题讨论】:
让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);
【讨论】:
其中圆心为(X0, Y0),半径为R,与x轴的夹角为theta:
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 + rsin(2π/3), y0+rcos (2π/3)。
【讨论】:
从中心画线到用sin 计算出的坐标,y 坐标用cos 计算x 坐标(两者都乘以手的长度)。
【讨论】: