2010-01-30 36 views
3

我試圖找出如何動態地將繞一大圈(類似於一個鐘面),但動態的,所以如果數字的逛了一圈數爲5或27 ..他們會數正確的空間。動態間距繞一大圈數

我發現了一些代碼(見下文),看起來像它可能會幫助,但我在實施它的麻煩。我不知道我是如何將這回歸到圈子和數字的。

任何幫助將不勝感激。 感謝

function getNPointsOnCircle(center:Point, radius:Number, n:Number = 10) : Array 

{

var alpha:Number = Math.PI * 2/n; 
var points:Array = new Array(n); 

var i:int = -1; 
while(++i < n) 
{ 
    var theta:Number = alpha * i; 
    var pointOnCircle:Point = new Point(Math.cos(theta) * radius, Math.sin(theta) * radius); 
    points[ i ] = center.add(pointOnCircle); 
} 

return points; 

}

+0

包括你的代碼幾乎完全我本來期望的答案,給出你的問題。你有什麼特別的麻煩? – 2010-01-30 22:16:51

+0

嗨,我正在尋找這個。我設法重現它/'移植到iOS SDK – boliva 2011-08-24 13:55:00

回答

3

該代碼工作完美。這是如何使用它:

var center:Point = new Point(100,100); 
var radius = 100; 
var n = 10 


var p:Array = getNPointsOnCircle(center, radius, n) 


var myContainer:Sprite = new Sprite(); 
myContainer.graphics.lineStyle(1); 

for (var k = 0; k <p.length;k++) 
{ 
    myContainer.graphics.drawCircle(p[k].x,p[k].y,5); 
} 

addChild(myContainer); 
+0

非常感謝!我添加了你的其他代碼,它的工作正常.....現在我只是要把我的頭圍繞它! :) 如果我有這個權利的getNPointsOnCircle功能構建圈子與你的參數,可以myContainer中建立的位置標記。 更改myContainer是我將代碼添加數字或其他任何東西的地方?我想我明白了! 再次感謝 – dmschenk 2010-01-31 02:52:05

+0

沒錯這就是它!所以如果你想對這些標記進行編號,你所要做的就是將它們(例如textfield)放置在myContainer精靈的位置。例如 會將myText變種:文本字段=新的TextField(); myText.text =「1」; myContainer.addChild(myText); myText.x = //選擇陣列點中的一個,並指定其x myText.y = //選擇相同的陣列點及其其y – Allan 2010-01-31 04:43:32