我有一個軌道相機,軌道是地球儀。用戶可以點擊地球上的幾個標記,相機將移動到該點。ThreeJS oribital camera short rotation
使用TweenMax像這樣的動畫 -
TweenMax.to(currentPos, 3, {
theta:targetPos.theta,
phi:targetPos.phi,
radius:targetPos.radius,
ease:Circ.easeIn,
onComplete:btnZoomComplete,
onUpdateParams:["{self}"],
onComplete:SataliteTweenComplete,
onUpdate: function(tween) {
controls.setThetaPhi(tween.target.theta, tween.target.phi, tween.target.radius);
}
});
這個偉大的工程,然而這並沒有考慮到的最短路線到達那裏。所以它可以經常在全球範圍內「背靠背」。 3JS似乎在一個非常奇怪的單位系統中測量角度: 0,1.57(相當於90度),3.14(方程180dg),然後在3.14跳到-3.14,-1.57(方程270天)之後, ,然後回到0 ...所以這讓我想起如何解決它。
例如,假設攝像機處於2.6並且需要回到-2.61,此時攝像機會動畫CCW(2.6至-2.16),在視覺上需要動畫化CW,這會移動從2.6到3.14,-3.14然後到-2.61。
對此的任何幫助將非常感激。
我想有兩個問題,如何找出哪個方向走輪,但隨後如何真正從2.6跨越動畫 - > 3.14,跳轉到-3.14無縫 - > -2.61