私は、JavaScript で取り組んでいる概念実証で単純なケプラー軌道を実装するために取り組んできました。私が直面している問題は、使用しなければならない計算によって、生成されたポイントにある程度の不正確さが生じることです。次の式を使用して座標を決定しています。
y = sqrt(r-x^2)
直線的に増加する X 値を使用して y 座標を決定します。これにより (上限に近づくとX
)、Y 値が急速に大きくなります。受け取った座標に沿って何かをアニメーション化しようとすると、方程式の限界に向かって加速します。
現在、デカルト平面で象限 II のみを計算しており、これを行うためのより良い方法があると確信していますが、JavaScript の数学メソッドにはかなり慣れていないため、やろうとしていることを実装する方法が完全にはわかりません。
極座標が計算の方法であるかどうか疑問に思っており、可能であればr = sqrt(x^2 + y^2)
、既知の座標を持つ関数を使用してデカルトに変換します。x,y
私が言ったように、これを達成する方法やそれが可能かどうかは完全にはわかりません. 以下は、私がこれまでに持っているもののソースです。助けてくれてありがとう!
var x = 0;
var y;
var r = 10;
var check = setInterval(function(){topHalf()}, 20);
function topHalf(){
if (Math.pow(x,2) <= 10){
y = Math.sqrt(r-(Math.pow(x,2)));
x = x + 0.01;
$('#orb').offset({top:y*100, left:x*100});
}else{
console.log('done');
clearInterval(check);
}
}