Python中文
首页
教程
问答
标签
搜索
登录
注册
贝塞尔曲线与直线段的交集
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在用Python编写一个游戏(使用pygame),它要求我为每一个新游戏生成随机但看起来不错的“sea”。经过长时间的搜索,我找到了一种算法,它包含了<a href="http://www.pygame.org/project-Pygame+Advance+Graphics+Library-660-.html" rel="noreferrer">padlib.py</a>中定义的贝塞尔曲线。我现在需要弄清楚padlib生成的曲线何时与线段相交。</p> <p>蛮力方法就是使用padlib生成的一组近似线段来寻找答案。然而,我怀疑可以通过分析找到更好的答案。我只有几十个样条线段-搜索它们应该比搜索数千个线段快。</p> <p>我沿着这条路走了一小段路:贝塞尔曲线->;<a href="http://en.wikipedia.org/wiki/Kochanek%E2%80%93Bartels_spline" rel="noreferrer">Kochanek-Bartels Spline</a>->;<a href="http://en.wikipedia.org/wiki/Cubic_Hermite_spline" rel="noreferrer">Cubic Hermite spline</a></p> <p>在最后一页,我发现了这个函数:</p> <blockquote> <p><b>p</b>(t) = h<sub>00</sub>(t)<b>p</b><sub>0</sub> + h<sub>10</sub>(t)<b>m</b><sub>0</sub> + h<sub>01</sub>(t)<b>p</b><sub>1</sub> + h<sub>11</sub>(t)<b>m</b><sub>1</sub></p> </blockquote> <p>其中,<b>p<b>(t)实际上是一个点(二维向量),h<sub>ij<sub>(t)函数是三次多项式,<b>p<sub>0,<b>p<b>sub>1,<b>m<sub>0和<b>m<b>sub>1是我可以从padlib代码中得到的点。</p> <p>现在,我可以看到我的问题的解决方案是<b>p</b>(t)=<b>u</b>+<b>v</b>*t<sub>1</sub>,其中<b>u</b>和<b>v</b>是线段的结束。</p> <p>然而,我无法计算出解析解。这里有人知道现有的解决方案吗?或者帮我解方程?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>作为粗略轮廓,旋转并平移系统,使线段位于X轴上。现在y坐标是参数t的三次函数,求“零”(解析公式可以在好的数学课本或维基百科上找到)。现在计算与这些零点相对应的x坐标,并根据线段进行测试。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何重塑数组、迭代列的所有行并将重塑后的数组分配给新列?Python/Pandas/Numpy
4 回答
如何重塑数组的形状?
7 回答
如何重塑文本数据以适应keras的LSTM模型
5 回答
如何重塑未对齐的数据集,并使用numpy丢弃剩余数据?
6 回答
如何重塑此数据以使用绘图
1 回答
如何重塑此数据帧?
2 回答
如何重塑此数据集以适应RNN
8 回答
如何重塑没有列的数组?
1 回答
如何重塑测试数据帧,使其维数与训练和预测工作中使用的维数相同?
3 回答
如何重塑系列以在StandardScaler中使用它
3 回答
如何重塑线性回归的数据
5 回答
如何重塑线性回归的数据?
4 回答
如何重塑表格?
8 回答
如何重塑要堆叠的重复宽数据帧?
1 回答
如何重塑输入以放入二维层?
10 回答
如何重塑输入神经网络的三通道数据集
9 回答
如何重塑这个numpy数组
5 回答
如何重塑这个numpy数组以排除“额外维度”?
2 回答
如何重塑这个numpy阵列?
1 回答
如何重塑这个数据帧
6 回答