两点之间的曲线方程,而曲线限制由两点定义

时间:2017-07-01 12:47:59

标签: python math pygame

我一直试图在python中找到一种方法来计算曲线的方程,该曲线与各自点的轴精确相交90度,而曲线不超过第一个点的y值和第二点的x值。作为一个视觉,我正在尝试编写一些代码,为这样的行创建一个等式:

enter image description here

无论如何,这样的事情是可能的吗?谢谢!

1 个答案:

答案 0 :(得分:3)

如果我理解正确的话,在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)

另一种更灵活的解决方案是使用Bezier曲线而不是椭圆,但这更复杂。