想象一下,在滿足以下條件的同時,表面上有2個點在表面上移動(導致各種線條和曲線)。如何繪製兩個等距離的移動點?
- 這兩點總是和總是在一個恆定的C距離彼此。
- 每個點都有它自己的速度和方向矢量。當然這兩個參數將根據條件1進行限制。如果點1的速度爲0,點2正在移動,則會形成一個類似於圓形的圓,點1爲中心。
我無法在編程結構中表達這些條件。有人可以幫助我嗎?
我使用的是OpenGL,但即使是一個僞代碼也適合我。
想象一下,在滿足以下條件的同時,表面上有2個點在表面上移動(導致各種線條和曲線)。如何繪製兩個等距離的移動點?
我無法在編程結構中表達這些條件。有人可以幫助我嗎?
我使用的是OpenGL,但即使是一個僞代碼也適合我。
vec3 center;
while(1):
vec3 centerDirection = ...
center += centerDirection
float angle = ...
vec3 dir(cos(angle), 0, sin(angle))
vec3 p1 = center + (C/2) * dir
vec3 p2 = center - (C/2) * dir
draw p1
draw p2
這是一個解決方案,您將一個圓的中心,並確保P1和P2是兩種截然相反的點 另一種解決方案:
while 1:
p1 += random
p2 += random
delta = p1-p2
delta.normalize()
p2 = p1 + C * delta
即你剋制P2,沒有這兩點。
在OpenGL實現我是如下
PlotTwoPoints(-span,0,+ SPAN,0); //在x軸上的兩個點
然後我旋轉座標系並繼續在上述兩個位置繪製兩個點。
簡單!
您需要更多地指定您的條件。從這個例子中,我明白這些進一步的兩條規則應該適用:1)不拖拉2)速度優先於方向(即使它意味着改變方向,該點將盡力保持其速度)。對? – 2010-08-15 09:20:19
你確定例2嗎?在物理模擬中,這將導致第一個點開始翻滾,而第二個點開始翻轉 - 如果它們的相對質量大致相等,則它們將在給定方向上移動時開始相互循環。如果最初移動的點的質量更高,則第一個將開始第二個移動。 – relet 2010-08-15 09:24:55
想象一下,一個機器人有三個輪胎,兩個後輪和後面的一個腳輪。讓我們說,這兩個電動輪胎的速度可以獨立控制。我想寫一個程序來追蹤它們在平面上的運動。 – 2010-08-16 11:57:57