Python 如何向线性点曲线添加分辨率?

Python 如何向线性点曲线添加分辨率?,python,maya,bezier,curve,Python,Maya,Bezier,Curve,我已经被困在一个章节有一段时间了,我想我可能会在这里寻求帮助 我正在用Python为Maya(3D建模软件)制作一个树生成器脚本,目前我希望树枝沿着它们的邻居弯曲。 对于我知道的每个分支类对象: 它的局部和世界旋转 它在局部和世界空间的终点和起点 它的父分支和子分支 二维数组中的索引(每次按下按钮都会生成分支,结果列表将添加到集合列表中) 基于平均子数据和父数据,我希望在放置的每条曲线的点之间添加1,以便我的分支沿其路径正确弯曲。我还必须注意末端和尖端分支。 为了总结我的问题,我给你做了一个小G

我已经被困在一个章节有一段时间了,我想我可能会在这里寻求帮助

我正在用Python为Maya(3D建模软件)制作一个树生成器脚本,目前我希望树枝沿着它们的邻居弯曲。 对于我知道的每个分支类对象:

  • 它的局部和世界旋转
  • 它在局部和世界空间的终点和起点
  • 它的父分支和子分支
  • 二维数组中的索引(每次按下按钮都会生成分支,结果列表将添加到集合列表中)
  • 基于平均子数据和父数据,我希望在放置的每条曲线的点之间添加1,以便我的分支沿其路径正确弯曲。我还必须注意末端和尖端分支。 为了总结我的问题,我给你做了一个小GIF。

    我正在寻找一个数学实现,我可以很容易地翻译到我的项目。
    我的问题几乎解决了,只是我的问题需要更多的手动实现。

    许多答案表明贝塞尔曲线三次样条插值是贝塞尔曲线的一个子集。一个选项是使用catmull rom曲线从GIF生成“平滑曲线”,然后(因为它们是同一条曲线,只是不同的表示形式)“转换”每个线段,然后计算曲线上
    t=0.5
    处的点是什么。现在你有了新的“每个点之间的额外点”。但你也可以完全忽略“曲线构建”,只看你的“结果”图像,并确定您可以利用哪些线性属性来大致查找这些点。很抱歉,很难通过这些定义良好但信息量过大的文档找到我的方法,因此,如果您能在Y-up空间中为我提供一个从原点到(0,10,0)的起始分支的示例,我将不胜感激孩子们在a:(-2,17,-0.5),b:(2,17,-0.5)处相连,为了简单起见,让我们说a和b都有1个孩子在y轴+5上移动,所以a2(-2,22,-0.5),b2(2,22,-0.5)。所以我们有5个分支可以解释我所有的问题。非常感谢大家的帮助!