2010-09-28 60 views

回答

6

我不知道該怎麼辦行的實際繪製在Java中,而是從一箇中心點計算座標(cx,cy)使用

px = cx+sin(a)*r 
py = cy+cos(a)*r 

a是弧度的角度( - 我想即180度=π弧度)並且r是半徑。

要繪製圍繞外部的小線條,您需要使用該公式,例如半徑爲100,半徑爲105,並在兩組座標之間繪製。

for (var a=0,aMax=(2*Math.PI),aStep=(Math.PI/30); a<aMax; a+=aStep){ 
    px1 = cx+Math.sin(a)*r; 
    py1 = cy+Math.cos(a)*r; 
    px2 = cx+Math.sin(a)*(r+5); 
    py2 = cy+Math.cos(a)*(r+5); 

    //draw line between (px1,py1) and (px2,py2) 
}; 
+1

他問的是javascript,'java.lang.Math'是一個java類,並沒有在JavaScript中可用 – 2010-09-28 08:12:39

+2

它只是JavaScript中的'Math'。 – poke 2010-09-28 08:14:20

+0

對不起,我讀了Java。脫脂閱讀!謝謝poke :) – 2010-09-28 08:15:45

1

你應該閱讀基本的三角學,並集中在Quadrants來實現這一點。

2

看一看的CoolClock的源代碼。

+0

我不認爲瀏覽一個複雜的代碼(它支持皮膚 - 跆拳道)是值得的,當所有的操作系​​統正在尋找是一個簡單的計算.. – poke 2010-09-28 08:42:42

+0

皮膚應該包含代碼畫線。這段代碼應該非常簡單。此外,查看其他人的代碼總是一個很好的學習經驗。 – 2010-09-28 09:07:25

+0

@poke同意,OP想「圍繞一個圓圈畫線」 - 不實現一個完整的時鐘。目標可能完全與時鐘無關,但只是時鐘*,如* – 2010-09-28 09:08:04