算法题,大家帮忙想想

zyrr159487 2011-07-11 01:41:40
题目如下;
判断一个点是否在一个不规则区域范围内
...全文
495 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
风vs雷 2011-08-10
  • 打赏
  • 举报
回复
参考自动控制原理,跟轨迹画法那章节,里面好像有详细的数学证明。当然这个规则对于某些特殊情况,两块区域正好交为一点或者一线的情况是不适用的。因为点,线相交时经典的几何就不能对这些问题做处理了,就像比较一厘米线段中点和一米长线段中点个数那个多一样,这不是经典集合能处理的问题。
风vs雷 2011-08-10
  • 打赏
  • 举报
回复
在学自动控制原理时,有个判断跟轨迹的方法,这个东西和个轨迹判断类似,只是没有数轴而已,具体来说,过该线段随意画一条直线,判断该点与该区域的全部交点,如果两端都是奇数点,则有180度角,即该点在该封闭区域,反之若该点两端相交点数目均为偶数点,则为360度区域,这样该点就不再该区域内。
  • 打赏
  • 举报
回复
计算机图形学算法工具详解 有代码由说明的。
这个问题好像有人问过
HBack 2011-07-11
  • 打赏
  • 举报
回复
算法 头痛....
zyrr159487 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 ouyh12345 的回复:]

可以反过来想
如果一个点在区域内,则通过此点任画一直线,此直线必与区域相交而得某些线段,且此点必在某线段上
[/Quote]
这个应该是射线法,之前也是用这个方法,不过最近发现一些特殊情况会出现误判的情况,估计是判断条件写的不够周密
fengbingchun 2011-07-11
  • 打赏
  • 举报
回复
可以利用Opencv的序列轮廓函数来实现
smwhotjay 2011-07-11
  • 打赏
  • 举报
回复
把不规则区域分割成规则形状。。比如全部切割成3角形。
验证码识别 2011-07-11
  • 打赏
  • 举报
回复
如果知道不规则区域的边点集合

可以求连通区域的集合

判断点是否在集合内
验证码识别 2011-07-11
  • 打赏
  • 举报
回复
不规则区域点的集合不能知道?
ouyh12345 2011-07-11
  • 打赏
  • 举报
回复
可以反过来想
如果一个点在区域内,则通过此点任画一直线,此直线必与区域相交而得某些线段,且此点必在某线段上
zyrr159487 2011-07-11
  • 打赏
  • 举报
回复
感谢大家的回答,稍后结贴
zyrr159487 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 happyparrot 的回复:]

可以全部乘以一定的倍数再计算。比如坐标值不大的话,可以乘以10000之类的再计算,精度就高了
[/Quote]

总算有一次能跟大牛想到一块了
tt2com 2011-07-11
  • 打赏
  • 举报
回复
凸边的好像处理不难,但有凹的就有点麻烦了。现在在公司没代码,我收藏过一个来外写的代码,就是处理点和多边形的关系,网上回家找找
快乐鹦鹉 2011-07-11
  • 打赏
  • 举报
回复
可以全部乘以一定的倍数再计算。比如坐标值不大的话,可以乘以10000之类的再计算,精度就高了
zyrr159487 2011-07-11
  • 打赏
  • 举报
回复
图形的顶点都是DOUBLE类型的,而CreatePolygonRgn里面的点都是INT类型的,这样会不会判断不准呢
ryfdizuo 2011-07-11
  • 打赏
  • 举报
回复
ryfdizuo 2011-07-11
  • 打赏
  • 举报
回复
老算法了。google一下就有了:http://alienryderflex.com/polygon/
Elieend 2011-07-11
  • 打赏
  • 举报
回复
学习学习
快乐鹦鹉 2011-07-11
  • 打赏
  • 举报
回复
可以阿,曲线都可以逼近成多边形的
zyrr159487 2011-07-11
  • 打赏
  • 举报
回复
将不规则曲线上的每个顶点都取到,然后CreatePolygonRgn 转为 多边形区域
接着用PtInRegion 来判断是否能应对任何不规则呢。
加载更多回复(9)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧