2016-12-17 22 views
1

Javascriptを使用して極限曲線をHTMLキャンバスに描こうとしています。プラスマイナス記号(±)を変換するときはどうすればよいですか?Javascriptのプラス・マイナス記号(±)を持つ極座標曲線式

例:ワットの曲線の下

Math representation of Watt's curve

は、私が試したものです。 rの値を取得する必要があるため、方程式全体を平方根で囲みます。絶対値を使用します。そうでなければ、数値が負の場合は平方根を得るためにnullが得られます。次のコードでは、極座標曲線のように見えますが、ワット曲線は見えません。

var a = 1; 
var b = 1; 
var c = 2; 
r = Math.sqrt(Math.abs(Math.pow(b, 2) - Math.pow(a * Math.sin(t) * Math.sqrt(Math.abs(Math.pow(c, 2) - Math.pow(a, 2) * Math.pow(Math.cos(t), 2), 2)), 2))); 

私はプラスマイナス記号を含む他の式(それが正常に動作せずにもの)と予想される結果と同様の偏差を取得するので、私はこの問題は、私が間違ってこのシンボルを「翻訳」ということであるとします。何が間違っていますか?

答えて

2

二乗されたシータと内側の平方根(Math.sin(t) * Math.sqrt(...))の間違った乗算があるようです。

二つの式にプラスマイナス記号を変換し、式をプロットする:

var a = 1; 
var b = 1; 
var c = 2; 

var b2 = Math.pow(b, 2); 
var asint = a * Math.sin(t); 
var sqroot = Math.sqrt(Math.pow(c, 2) - Math.pow(a, 2) * Math.pow(Math.cos(t), 2), 2); 

var r = Math.sqrt(b2 - Math.pow(asint + sqroot, 2)); 
// now plot r 
r = Math.sqrt(b2 - Math.pow(asint - sqroot, 2)); 
// now plot r again 

Math.abs()は必要ありません。

+0

はい、それはそうです。どういうわけか私はそれが必要ではないと思った。どうもありがとう。 – cincplug

関連する問題