Javascript 中带正负号 (±) 的极坐标曲线方程
Polar curve equation with plus-minus sign (±) in Javascript
我正在尝试使用 Javascript 在 HTML canvas 上绘制极坐标曲线。想要转换正负号怎么办(±)
?
示例:瓦特曲线
下面是我试过的。因为我需要得到 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) ));
我得到的预期结果与其他包含正负号的方程式(没有正负号的方程式可以正常工作)有类似的偏差,所以我想问题是我错误地 'translate' 这个符号。我做错了什么?
看来平方 theta 与内平方根 (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()
应该不是必需的。
我正在尝试使用 Javascript 在 HTML canvas 上绘制极坐标曲线。想要转换正负号怎么办(±)
?
示例:瓦特曲线
下面是我试过的。因为我需要得到 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) ));
我得到的预期结果与其他包含正负号的方程式(没有正负号的方程式可以正常工作)有类似的偏差,所以我想问题是我错误地 'translate' 这个符号。我做错了什么?
看来平方 theta 与内平方根 (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()
应该不是必需的。