2010-05-26 80 views
16

In this SO question, someone asked for calculating an angle from three points。我需要做相反的事情。如何計算具有給定中心,角度和半徑的點?

我想畫一個鐘,我有微小的刻度圖像。一個藝術家夥製作了60個人,每個人都有一個個人和準確的影子。因此,在10x10點的大小上有60個不同的圖像,已經在該正方形的中心正確旋轉。

所以每6度一個刻度圖像具有被放置。我只需要根據中心點,半徑和角度來計算x/y座標。

所以我必須:

  • 的中心點
  • 的半徑
  • 的角度

有沒有一種簡單的方法來計算X/Y與此協調?也許可可觸摸已經有一個有用的功能或方法呢?

回答

18

一個被角,(X,Y)中心點和[R半徑,那麼你的觀點將在

(x + r*cos(a), y + r*sin(a)) 
+5

正弦和餘弦在這裏逆轉 – 2014-07-05 01:31:30

+0

檢查更新的計算公式! – byJeevan 2016-03-30 09:06:59

1

你的圖像(中心)應放在在點(X,Y),其中(x,y)是中心點的座標,r是半徑

X = x + (r/2)*cos(angle); 
Y = y + (r/2)*sin(angle); 
18

在數學上,以計算笛卡爾從p座標olar座標:

x = r * cos(A) + x0; 
y = r * sin(A) + y0; 

其中(x0,y0)是圓的中心,r是半徑,A是角度。

但是假定數學座標約定,即隨着向右移動x增加,隨着向上移動y增加。這是Mac OS X Cocoa視圖的默認設置,但我不知道它是否與iPhone相同。

此外角開始在3點和去逆時針方向即3時爲0度,12時爲90度,9點爲180度和6時是270度。

此外,將C正弦和餘弦函數的弧度工作。

+0

我剛剛意識到,unbeli的答案已經應用了修正,使角度從頂部開始,然後以自然的方式順時針旋轉,這樣您就可以期待鐘面。 – JeremyP 2010-05-26 13:03:01

+0

+1。我無法讓unbeli的解決方案工作,但是你的解決方案(使用JavaScript)。這裏有一段代碼,用於從指定角度的HTML5畫布中心繪製一條線。注意黑客繞過開始在3點: X0 = ctx.canvas.width/2; y0 = ctx.canvas.height/2; ctx.lineTo( (x0 + r * Math.cos(toRad(angle-90))), (y0 + r * Math.sin(toRad(angle-90))) ) – GojiraDeMonstah 2014-06-17 12:56:29