社区
数据结构与算法
帖子详情
求算法思路:如何判断指定的点最接近于贝塞尔曲线的第几段?
cuixiping
2010-07-01 02:01:11
如上图,ABC是一条贝塞尔曲线,A',B',B'',C'是控制点。这些点的坐标已知。
现在已知点D的坐标,且确定点D接近曲线(到曲线的最近距离小于某个临界值s)。
曲线有可能旋转,交叉。
求D点最接近于曲线的第几段?
(如果在AB段,返回1;如果在BC段,返回2;类推)
求给个思路,或者给个资料
...全文
309
8
打赏
收藏
求算法思路:如何判断指定的点最接近于贝塞尔曲线的第几段?
如上图,ABC是一条贝塞尔曲线,A',B',B'',C'是控制点。这些点的坐标已知。 现在已知点D的坐标,且确定点D接近曲线(到曲线的最近距离小于某个临界值s)。 曲线有可能旋转,交叉。 求D点最接近于曲线的第几段? (如果在AB段,返回1;如果在BC段,返回2;类推) 求给个思路,或者给个资料
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
donkey301
2010-07-06
打赏
举报
回复
根据四个点求出三次Bezier曲线的参数表示(X(t), Y(t))
D的坐标设为(Xd,Yd)
(X(t)-Xd)^2 + (Y(t)-Yd)^2 = s^2
求出t的值,看看有没有在[0,1]区间的,有则表示在这条曲线上,没有就不在。
超级大笨狼
2010-07-04
打赏
举报
回复
贝塞尔曲线是由点和斜率来描述曲线的,那其实就可以根据点和斜率确定的直线分割的平面集合来判断属于那一段。
比如:AA,BB,CC这三条直线把平面分成了几块,你从D点引一个向X轴的抽象射线,就知道D点在线的哪一侧了。
budweiser
2010-07-02
打赏
举报
回复
按3楼的方法不错 不过可以改进一下。
只有处于两个边缘的两端 取 2个端点和2个控制点构成四边形, 其余的段可以由与其相邻的 4个 控制点来构成四边形。 然后判断 点是否在某个四边形内 就可以的得知 是在贝塞尔曲线的第几段。
[Quote=引用 3 楼 cuixiping 的回复:]
每一段的2个端点和2个控制点构成一个四边形(如[AA'B'B],[BB''C'C]),感觉应该可以计算点和这些四边形的关系来判断,但是具体如何我还不清楚。
[/Quote]
cuixiping
2010-07-02
打赏
举报
回复
是个复杂的问题。
FancyMouse
2010-07-01
打赏
举报
回复
如果单单是判断一个点的话遍历所有段是避免不了的。如果有很多点需要判断的话先把每段曲线围在一个矩形框里然后丢进4叉树组织起来,对于一般情况的大量查询会改善一点。
当然还是有特殊数据能够搞挂这个的,比如D点不在某个矩形内(乃如果说D很接近某个矩形的话那这个一般不会发生),或者曲线十分特殊,原地来回摆动然后D正好在正中间之类。
cuixiping
2010-07-01
打赏
举报
回复
每一段的2个端点和2个控制点构成一个四边形(如[AA'B'B],[BB''C'C]),感觉应该可以计算点和这些四边形的关系来判断,但是具体如何我还不清楚。
cuixiping
2010-07-01
打赏
举报
回复
这个算法不好,计算量太大,特别是曲线很长的时候。
FancyMouse
2010-07-01
打赏
举报
回复
不管是几阶的贝塞尔,每一段都可以写成参数方程的形式。把参数方程写出来然后把距离写成关于参数t的函数最后最优化这个函数就完了。
C#图形学-
贝塞尔曲线
用C#做的
贝塞尔曲线
生成器,能生成2~4阶
贝塞尔曲线
。使用离散
算法
。 其中,文件包内的LCDEMULATOR_SE是一个显示控件。
用Opengl实现三次
贝塞尔曲线
交互实现Opengl三次bezier曲线 用户定义4个控制
点
bezier曲线的生成
算法
图形学
算法
中的bezier曲线生成
算法
vc程序
VC6.0绘制经过多
点
的平滑曲线形成闭合区域
本工程在VC6.0下开发并完整打包,实现了绘制经过多
点
的平滑曲线的
算法
,并最终形成闭合区域。
Bezier:绘制
贝塞尔曲线
的简单程序
贝济耶 这是一个简单的程序,显示了如何构造
贝塞尔曲线
左键单击可在曲线上添加一个
点
,右键单击可清除所有
点
,鼠标滚轮单击可生成由太多随机
点
。 屏幕截图 简单的二次曲线: 随机曲线:
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章