Javascript 半椭圆周长的极性方程(凹面镜形)

Javascript 半椭圆周长的极性方程(凹面镜形),javascript,curve,polar-coordinates,Javascript,Curve,Polar Coordinates,var x=Cx+a*Math.cos(ang) 变量y=Cy+b*Math.sin(ang) Cx、Cy是中心线ang是以弧度为单位的角度a是宽度的一半,b是高度的一半 若我改变ang的值,我会得到椭圆圆周上的不同点。下面是路径,我用上面的等式得到 但我想要的不是这个椭圆,而是半椭圆,凹面镜。即使我们把它的两端拉伸到无穷远,它们也不应该形成椭圆形 有人能给我提供第二条曲线的极坐标方程吗。我在数字绘图方面非常差,但你可以想象,作为凹面镜。聚焦在(Fx,Fy)和聚焦参数2a的抛物线的参数方程,

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

变量y=Cy+b*Math.sin(ang)

Cx、Cy
是中心线
ang
是以
弧度为单位的角度
a
是宽度的一半,
b
是高度的一半

若我改变ang的值,我会得到椭圆圆周上的不同点。下面是路径,我用上面的等式得到

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


有人能给我提供第二条曲线的极坐标方程吗。我在数字绘图方面非常差,但你可以想象,作为凹面镜。

聚焦在
(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
放大以“展平”抛物线。

也许您正在寻找抛物线、双曲线或悬链线形状?凹面反射透镜是抛物面透镜。请注意,这个问题可能属于math.stackexchange.com网站。是的,我认为它可能是一条抛物线,但抛物线方程对我来说很难。你是否仅限于使用角度方面的参数方程?不,但是,我需要根据角度找到坐标。我的答案有效吗?