【发布时间】:2017-07-01 20:56:03
【问题描述】:
我一直在尝试在 python 中找到一种方法来计算曲线方程,该曲线与它们各自点的轴正好成 90 度相交,而曲线不超过第一个点的 y 值和第二个点的 x 值。作为一种视觉效果,我正在尝试编写一些代码来为这样的行创建一个方程:
无论如何,这样的事情是可能的吗?谢谢!
【问题讨论】:
我一直在尝试在 python 中找到一种方法来计算曲线方程,该曲线与它们各自点的轴正好成 90 度相交,而曲线不超过第一个点的 y 值和第二个点的 x 值。作为一种视觉效果,我正在尝试编写一些代码来为这样的行创建一个方程:
无论如何,这样的事情是可能的吗?谢谢!
【问题讨论】:
如果我对您的理解正确,那么在 x 和 y 轴上的给定点处,中心在原点和长轴和短轴的末端的椭圆就可以了。如果 x 轴上的点的 x 坐标为 a 而 y 轴上的点的 y 坐标为 b 则方程为
x**2/a**2 + y**2/b**2 == 1
如果您想要一个从 x 值计算 y 值的函数方程,
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)
另一个更灵活的解决方案是使用贝塞尔曲线而不是椭圆,但这更复杂。
【讨论】: