如果我理解正确,一个以原点为中心,主轴和次轴在x和y轴上给定点的椭圆可以实现。如果x轴上的点具有x坐标a
,y轴上的点具有y坐标b
,则方程为:
x**2/a**2 + y**2/b**2 == 1
y = b * math.sqrt(1 - (x / a) ** 2)
该函数适用于 0 <= x <= a
。
另一种获得在x==a
附近更加平滑的图形的方法是使用以下参数化方式:0 <= t <= math.pi / 2
:
x = a * math.cos(t)
y = b * math.sin(t)
另一个更加灵活的解决方案是使用贝塞尔曲线而不是椭圆形,但这更加复杂。