社区
图形处理/算法
帖子详情
如何确定一个点是否在曲线上?
simple0407
2008-04-08 11:54:48
已知N个控制点,画出Bezier曲线,现在给出一个点的x,y坐标,
如何判断这个点是否在曲线上?还有容错值,求具体解决方式,VC下
...全文
748
11
打赏
收藏
如何确定一个点是否在曲线上?
已知N个控制点,画出Bezier曲线,现在给出一个点的x,y坐标, 如何判断这个点是否在曲线上?还有容错值,求具体解决方式,VC下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
趣味编程
2011-05-06
打赏
举报
回复
顶,值得收藏
vcPlayer
2008-04-08
打赏
举报
回复
既然能画出Bezier曲线,那就肯定知道它的表达式。你将在X误差范围内的值代入到该表达式求得Y,或Y也在误差内,则在曲线上。
pomelowu
2008-04-08
打赏
举报
回复
http://fengershishe.blog.163.com/blog/static/223380332007101551755233/
有詳細的計算坐標公式,反過來套用。
用户 昵称
2008-04-08
打赏
举报
回复
x = (1-t)^3 *x0 + 3*t*(1-t)^2 *x1 + 3*t^2*(1-t) *x2 + t^3 *x3
y = (1-t)^3 *y0 + 3*t*(1-t)^2 *y1 + 3*t^2*(1-t) *y2 + t^3 *y3
( 1> t> 0 ),( x0 ,y0 ),( x1 ,y1 ),( x2 ,y2 ),( x3 ,y3 )为四个点坐标。
t足够密时,进行逐点判断。
simple0407
2008-04-08
打赏
举报
回复
搞定,散分,谢谢各位啊。。。
用户 昵称
2008-04-08
打赏
举报
回复
那也没什么,总之有几个值比较几个值就可以了,t不是0-------1吗?
simple0407
2008-04-08
打赏
举报
回复
最新进展,我通过Bezier曲线展开把常量确定了,但是,又碰到了新问题,比如,对于一个点(x,y)把x带进公式的时候算出的y值是唯一的,但是,实际上,x坐标相同的情况下,曲线上的Y值有可能是2个值,那么,如何通过给定一个x坐标,确定2个不同的y值呢?假设公式已经导出
pomelowu
2008-04-08
打赏
举报
回复
Bezier曲綫公式很明確,而且為控制點所確定。用其他曲綫公式擬合難度會比較大……
菜牛
2008-04-08
打赏
举报
回复
上面都说了,就是根据公式来算。
simple0407
2008-04-08
打赏
举报
回复
可能我没有讲讲清楚,大家把问题想得比较简单了吧,我确定了一系列控制点,调用API画一条通过这些控制点的曲线,这个过程对我来说是透明的,注意,没有现成的公式套用,所以根本没办法一个点是否在这条曲线上,所以,我最需要做的应该就是把这条任意曲线拟合,也就是公式化,这才是最关键的,但是,我没办法找算法,根据2楼提供的资料,我算出了各个常数以后,将x,y带进去,好像不对啊。求确切算法
scq2099yt
2008-04-08
打赏
举报
回复
比较坐标
判断
一个点
是否
在闭合
曲线
内
判断点
是否
在闭合
曲线
内 以前在做医疗靶区勾画时用到过这个算法,现在总结一下,介绍引射线法。 1、原理 从目标点引一条射线,判断这条线与
曲线
的交点个数为奇数还是偶数,为奇数表示点在
曲线
内,偶数表示点在
曲线
外。 js代码如下: function pointInPolygon(point, lines) { var inside = false; for ...
求任意
一个点
到任意函数
曲线
或
曲线
方程(参数方程)上最近距离点的通用方法,含Matlab实现代码
一、问题提出 假如
曲线
外有
一个点
,如果这个
曲线
是直线,求这个点到直线的距离最近的点,则比较好求,直接作垂直线,再求交点即可。但是,如果这个
曲线
不是直线,而是一个任意弯曲的函数
曲线
甚至是一个参数方程形式的
曲线
,该如何求解呢? 二、解决方案 1、对于求
一个点
到任意函数
曲线
这种情况,我是通过搜索法实现的。设有函数
曲线
外有
一个点
,现在以为圆心,半径依次为(半径线性递增或指数递增等)画圆,直到画出的圆能够与函数
曲线
相交。判断圆与
曲线
是否
相交的方法如下:如画一个半径为的圆,则对应的范围为,通过对进行0.01的细分
判断点在闭合
曲线
内部还是外部的方法
1、原理 从目标点引一条射线,判断这条线与
曲线
的交点个数为奇数还是偶数,为奇数表示点在
曲线
外,偶数表示点在
曲线
内。实际计算的时候,只需要判断一侧即可。 C 代码: //xFlat为目标点,points为线段中的点 int nInsideFlag = 0; for (int pIdx = 0; pIdx < nLines; ++pIdx) { points->GetPoint(pIdx, p1); points->GetPoint(pIdx + 1, p2); fl
光滑
曲线
_使用Python实现贝塞尔
曲线
连接多点形成光滑
曲线
给定多个点,如何将这些点连接起来形成一条光滑的
曲线
呢?我们已经了解关于贝塞尔
曲线
的公式以及几何画法,但是要如何来解决我们用
曲线
来连接各个顶点的问题呢?对于两个点之间我们可以使用三阶贝塞尔
曲线
来连接,这样通过多段贝塞尔
曲线
相连,就可以得到我们想要的
曲线
。而三阶贝塞尔
曲线
需要两个控制点来
确定
,很显然贝塞尔
曲线
不一定通过控制点,但是肯定通过端点。所以给定的顶点只能做端点,那问题就变成了如何计算所需要的控...
OpenCasCade——给定B样条
曲线
上的一点,求出过该点的切向量或法向量
问题: 如果有这样的场景:已知一条B样条
曲线
,已知
曲线
上
一个点
,求过这个点的
曲线
的切线或法线,在OpenCasCade中如何解决? 局限性 实际上,上述求解是不存在的,或者说直接获得过这个点的
曲线
的法向或切向量的方法是没有的,原因之一可能是安全性考虑,比如所给点不在
曲线
上?虽然用户可能说我这个点就在
曲线
上,但是参数化的
曲线
可不管你怎么说。 不管怎么说,OpenCasCade中要获得一条参数...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章