0

var x = Cx + a * Math.cos(ang);

var y = Cy + b * Math.sin(ang);

Cx, Cy是中心线。ang是 中的角radiansa是宽度b的一半,是高度的一半。

如果我改变 的值ang,我会在椭圆的圆周上得到不同的点。下面是路径,我用上面的方程得到。

椭圆

但我想要的不是这个椭圆形,而是半椭圆形,像凹面镜。即使我们将它的两端都拉伸到无穷大,它们也不应该形成椭圆形。

凹

有人可以为我提供第二条曲线的极坐标方程。我很不擅长数字绘图,但你可以把它想象成凹面镜。

4

1 回答 1

1

(Fx, Fy)焦点为且焦点参数为 的抛物线的参数方程2a,就角度而言,将是:

x = Fx + (2*a*cos(ang))/(1 + cos(ang))
y = Fy + (2*a*sin(ang))/(1 + cos(ang))

还不错。:) 您可以a根据需要进行调整。实际上,您可以通过调整从焦点到绘图的距离与绘图到准线的距离比率来稍微修改它:

x = Fx + (2*a*cos(ang))/(1 + cos(ang))
y = Fy + (2*b*sin(ang))/(1 + cos(ang))

这里的比率将是b/a。因此,您可以从原点到顶点 (2a) 具有相同的距离,并b增大以“压平”抛物线。

于 2013-10-12T13:59:42.677 回答