Math 用正确的抛物线实现OSpline

Math 用正确的抛物线实现OSpline,math,opengl,geometry,coordinate-systems,Math,Opengl,Geometry,Coordinate Systems,所以我的家庭作业是创建一个opengl程序,可以将点转换为球体几何体并正确连接它们。 第一项任务是使用给定的控制点和ospline实现创建非洲的形状。 我没有找到任何关于ospline的参考资料,所以这里是: OSpline是两条抛物线之间的插值,你给它4个点,它从3-3个点创建两条抛物线,并线性插值中间的2: 我为我的实现创建了一个desmos页面,因此您可以看到我是如何计算它的: 现在,这对大多数部件都很有效,但显然我有一个问题: 左是结果。应该是这样的。 坐标不完全正确,但它应该给出

所以我的家庭作业是创建一个opengl程序,可以将点转换为球体几何体并正确连接它们。 第一项任务是使用给定的控制点和ospline实现创建非洲的形状。 我没有找到任何关于ospline的参考资料,所以这里是:

OSpline是两条抛物线之间的插值,你给它4个点,它从3-3个点创建两条抛物线,并线性插值中间的2:

我为我的实现创建了一个desmos页面,因此您可以看到我是如何计算它的:

现在,这对大多数部件都很有效,但显然我有一个问题:

左是结果。应该是这样的。 坐标不完全正确,但它应该给出右侧坐标的大致形状

现在的问题是,当您在右上角的3个点上创建一条抛物线时,它会像人们所期望的那样创建一条正常的U形抛物线,因为在此实现中y不能有2个值

解决方案是,这3个点也可以定义一条抛物线,形状如下:⊃ 插值那条抛物线会给我正确的结果

但因为y在抛物线上有两个值,所以我必须完全不同地计算它。 我还需要检查一下,我需要一条精确的抛物线


我想知道是否有办法检查这个问题,或者我可以使用另一个坐标系来解决这个问题吗?

我今天完成了任务的这一部分,所以我将尝试指导您,但我不会告诉您我的全部解决方案

抛物线上的桥的公式是S(t)=a(t-t_i)^2+B(t-t_i)+C。在这里,你似乎将a、B和C解释为数字,但它们应该是向量!(这样,它给出了一个隐式方程,所以“y可以得到2个值”)而且你的数学解看起来太复杂了。我得到了一个简单得多的点方程

假设要包含在抛物线中的三个点的索引为-1、0和1

若要得到A、B和C,则应考虑当t=1时,t=0,(在这种情况下,方程应该给出三个点中的一个),当它给出第一个点时,当t=1时(它给出最后一点)。在这三个方程式中,你可以表示每个变量

这有点明显,但C应该等于中间点。剩下的就交给你了。祝你好运