假設我有一個有中心的D維球體[C1,C2,C3,C4,... CD]和一個半徑R.現在我想繪製N個均勻分佈的點(與每個點等距其他)在球體的表面上。這些點的確切位置並不重要,只是它們彼此完全等距。我想,返回這些點的陣列功能,P.如何繪製D維球體表面上的N點,大致等距離分開?
function plotter(D, C[1...D], R, N)
{
//code to generate the equidistant points on the sphere
return P[1...N][1...D];
}
這在數學上是相當技術上得到正確的。我會在math.stackexchange.com上提出這個問題。但只是將它作爲單位D-Sphere上的點(因爲縮放和平移使它的半徑R,居中於(c_1,...,c_D)是微不足道的。 –
我還沒有完全想到這一點,所以它(R,0,0,...,0)並假設球體在原點處居中),現在在D-1軸上旋轉該點(shouldn' (但它必須是一致的)以θ/(N-1)的角度,並在那裏放置一個新點(這將涉及到很多[矩陣乘法](http://en.wikipedia.org/wiki/Rotation_matrix# General_rotations),做這個N-1次,這可能讓你想要你想要的,但是我很抱歉,如果它失敗了,我還沒有想到它會一直如此。 –
您可以創建一個隨機解決方案,然後對其進行退火。在D-Sphere上創建N個隨機點。使用均勻性度量來評估它。隨機調整一個隨機點。如果這改善了措施,請保持調整,否則撤消它。重複,直到累了。 – NovaDenizen