わかりました。この情報をすべて入力するには、回答スペースが必要です。
まず、与えられた三角形の角度を計算する必要があります。次の方法でそれを行うことができます。
int angle = (360 / numberOfElements) * triangleIndex;
また、新しい位置を計算するために使用する「スライス」を作成する必要があります (それが何であるかはわかりません。ただ読んでください)。
var slice = (2 * Math.PI / numberOfElements) * triangleIndex;
次に、各三角形の位置を計算する必要があります。
int tempRadius = radius + (int)(triangleHeight / 2);
int traingleCentreX = (int)(centre.X + tempRadius * Math.Cos(slice));
int traingleCentreY = (int)(centre.Y + tempRadius * Math.Sin(slice));
//assuming centre is the centre of the circle
[このすべての数学の功績はこの回答
にあります]
各三角形の正しい位置が得られたので、( を使用してangle
) 回転を適用できるようになり、驚くべきボールのように見えるはずです!
注: 位置は、右 (つまり 90 度) から計算されます。したがって、回転を行うときは、さらに 90 度を追加してください。
http://jsfiddle.net/TcENr/ (テストするのが最も速いです!)