Javascript中带有加号 - 减号(±)的极坐标曲线方程

时间:2016-12-17 18:58:47

标签: javascript graph trigonometry curve polar-coordinates

我正在尝试使用Javascript在HTML画布上绘制极坐标曲线。当我想要转换加号 - 减号(±)时,我该怎么办?

示例:瓦特曲线

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) ));

我得到类似的预期结果偏差与其他包含正负号的方程(没有它的方法工作正常),所以我想问题是我错误地“翻译”了这个符号。我做错了什么?

1 个答案:

答案 0 :(得分: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()不是必需的。