我想繪製位於單位球面(r = 1)表面的實時三維點。使用兩個自旋向量中的點對球體上的x,y,z座標進行插值?
有兩個旋轉矢量在這裏工作。一個矢量圍繞Y軸旋轉,它是X和Z值是使用完全位於X/Z平面上的圓的cos()和sin()計算出來的,其中所有Y值都等於0。 X軸,它是使用完全位於Z/Y平面上的圓的cos()和sin()計算出的Z值和Y值,所有X值都等於0.兩個向量的角動量通常不是相同。然而,矢量的端點位於半徑等於1的共同球體的表面上。因此它們具有相同的大小,並且都起源於相同的0,0,0點。
假設第一個矢量有一個角動量項angXZ和第二個angZY。這意味着我可以隨時計算兩個點,一個用於每個旋轉矢量,使用angXY和angZY。對於這兩個三維點,計算第三個點的公式是什麼?這個公式也將位於單位球面上,並且是從angXZ和angZY計算的兩點之間的正確插值?
我可以在我的腦海中看到,給定位於單位球體表面上的任意兩個三維點,只有一個圓形(平面),它們的圓周都會位於上面。我也可以直觀地認爲,計算插值點的座標歸結爲當投影到它們共有圓周的圓上時將兩個計算點創建的角平分。但是我無法將我的頭圍繞在翻譯和數學上。
是否有一個簡單的公式,需要位於單位球體表面上的兩個三維點,計算第三個點也將位於該表面上,並且是前兩個點之間的正確插值?
我正在使用Delphi Pro 6,如果這很重要。
後續:看起來很直觀,我應該能夠從這對自旋向量計算出的兩點的線性中點,並將該點投影到單位球面上。例如,下面鏈接中的公式給出了計算任意兩個3D點之間中點的公式。那麼我不能再採用這個3D點並使用一些公式,以一種將它投影回單位球體表面的方式來調整它的XYZ座標?
Finding coordinates of a point between two points?
一個快速註釋 - 如果兩個點彼此直接相對(不確定這是否發生在您的場景中),那麼有無限數量的圓圈,半徑=通過它們的球體半徑。 – 2010-10-05 15:04:38