永发信息网

如何知道一个点是否在一个闭合区域内。闭合区域可以是任意曲线围成的,也可以是多边形。

答案:2  悬赏:80  手机版
解决时间 2021-03-11 16:04
  • 提问者网友:战魂
  • 2021-03-11 12:20
如何知道一个点是否在一个闭合区域内。闭合区域可以是任意曲线围成的,也可以是多边形。
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-03-11 13:43
射线法
大致情况如下 1 首先确认不在边界上 不在边界点上
2 作射线 算交点 技术内 偶数外
要考虑 特殊情况 如交点过 边界点 射线重合边界等

没有银弹
通常算法好 代码就麻烦哦
够有写点代码的
在VC++中使用样条曲线画了一个闭合图形,现在想当鼠标点在这个闭合区域时可以移动这个区域,可以使用CRgn里的函数,将多边形变成区域,也就是说要先将这个用曲线围成的区域使用直线插补算法将它变成多边形才能算,要将点用数据串起来,还要算他的点的个数,
如果你的闭合区域给出了具体的数学表达式,假设这个区域是二维的,我们用y,x的关系来表示这个区域。首先假设你这个点是(X1,Y1),那么接下来你要做的就是求出当X=X1时,Y的范围,看Y1是否在里面;接着再求Y=Y1时X的范围,看X1是否在里面。同时满足就可说明这个点在这个闭合区域内。
全部回答
  • 1楼网友:酒者煙囻
  • 2021-03-11 14:53
扫描线算法,向(x,y)这个点的任意方向扫描,如果通过单数次边界,在闭合多边形内,如果通过双数次边界,在多变形外。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯