找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2656|回复: 17

[研讨] 能否利用位码来判断点和多边形的位置关系

[复制链接]

已领礼包: 3884个

财富等级: 富可敌国

发表于 2013-8-19 21:14:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有点异想天开了,呵呵

评分

参与人数 1D豆 +5 收起 理由
wowan1314 + 5 出题引导交流奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-19 22:19:21 | 显示全部楼层
位码是什么?

点评

就是根据点和直线的上下左右的关系,分别赋值1 2 4 8,那么多边形就是所有的线和点的关系,就是把位码相加,我觉得这方法可行,好象在多边形内肯定是奇数,在凸多边形内都是15,在外都是偶数,可以根据偶数来判断在  详情 回复 发表于 2013-8-19 23:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-19 23:15:49 | 显示全部楼层

就是根据点和直线的上下左右的关系,分别赋值1 2 4 8,那么多边形就是所有的线和点的关系,就是把位码相加,我觉得这方法可行,好象在多边形内肯定是奇数,在凸多边形内都是15,在外都是偶数,可以根据偶数来判断在多边行的哪一个方位。

点评

有想法,不过点在凹多边形的凹里怎么判断?  详情 回复 发表于 2013-8-20 08:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-20 08:46:26 | 显示全部楼层
ayl1004 发表于 2013-8-19 23:15
就是根据点和直线的上下左右的关系,分别赋值1 2 4 8,那么多边形就是所有的线和点的关系,就是把位码相 ...

有想法,不过点在凹多边形的凹里怎么判断?

点评

只要在外面,应该是偶数,每个不同的偶数,都应该能说明一个区域  详情 回复 发表于 2013-8-20 10:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 10:09:14 | 显示全部楼层
Free-Lancer 发表于 2013-8-20 08:46
有想法,不过点在凹多边形的凹里怎么判断?

只要在外面,应该是偶数,每个不同的偶数,都应该能说明一个区域

点评

能给大家写个实现的代码不? 很多发明都是从异想天开开始的。友情帮顶下。  详情 回复 发表于 2013-8-20 10:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-8-20 10:17:56 | 显示全部楼层
ayl1004 发表于 2013-8-20 10:09
只要在外面,应该是偶数,每个不同的偶数,都应该能说明一个区域

能给大家写个实现的代码不? 很多发明都是从异想天开开始的。友情帮顶下。

点评

以前想到的时候,曾经写过,没仔细调试,现在不知道放哪里去,我找到的时候再发  详情 回复 发表于 2013-8-20 10:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-20 10:18:15 | 显示全部楼层
似乎不行,看看附图的三个点。

www.jpg

点评

你的最下面一点是:1+4+2+8=15,哪里不行?  详情 回复 发表于 2013-8-20 10:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 10:25:10 | 显示全部楼层
Lisphk 发表于 2013-8-20 10:17
能给大家写个实现的代码不? 很多发明都是从异想天开开始的。友情帮顶下。

以前想到的时候,曾经写过,没仔细调试,现在不知道放哪里去,我找到的时候再发
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 10:39:02 | 显示全部楼层
本帖最后由 ayl1004 于 2013-8-20 10:42 编辑

点和直线的关系示意图,水平线只有2 8,垂直线只有1 4
示意图.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 10:46:31 | 显示全部楼层
本帖最后由 ayl1004 于 2013-8-20 10:52 编辑
ll_j 发表于 2013-8-20 10:18
似乎不行,看看附图的三个点。


你的最下面一点是:1+4+2+8=15,哪里不行?
左右两点分别是23和17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-20 10:58:54 | 显示全部楼层
ayl1004 发表于 2013-8-20 10:46
你的最下面一点是:1+4+2+8=15,哪里不行?

我有点看不懂你的算法了,是不是理解有误,我有5根线,怎么你的算式就四个数相加?

以我的理解,左面的点应该是:1+2+4+6+12=25,下面的点:1+2+4+9+12=28,右面的点:1+2+4+9+3=19。

点评

我也认为咱们理解不一样了,最下面一点只有四条线起作用,而另外一条线的位码是0,当然,如果刚好一个点位于多边形交点的水平或垂直位置上,只能取其一。  详情 回复 发表于 2013-8-20 11:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 11:52:02 | 显示全部楼层
ll_j 发表于 2013-8-20 10:58
我有点看不懂你的算法了,是不是理解有误,我有5根线,怎么你的算式就四个数相加?

以我的理解,左面 ...

我也认为咱们理解不一样了,最下面一点只有四条线起作用,而另外一条线的位码是0,当然,如果刚好一个点位于多边形交点的水平或垂直位置上,只能取其一。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-8-20 11:56:39 | 显示全部楼层
ayl1004 发表于 2013-8-20 11:52
我也认为咱们理解不一样了,最下面一点只有四条线起作用,而另外一条线的位码是0,当然,如果刚好一个点 ...

这样我也知道你的意思了,原来只是判断点与当前线段的关系,投影不到线段上的码位为0,大体是这个这个意思吧?

点评

我的这个想法也是起源于论坛上别人的射线法才想到的,所以就把投影不到的,设置为0  详情 回复 发表于 2013-8-20 12:04
我是这么想的,如果能把四个角落区域也能分开,那更好了  详情 回复 发表于 2013-8-20 12:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 12:00:46 | 显示全部楼层
ll_j 发表于 2013-8-20 11:56
这样我也知道你的意思了,原来只是判断点与当前线段的关系,投影不到线段上的码位为0,大体是这个这个意 ...

我是这么想的,如果能把四个角落区域也能分开,那更好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-20 12:04:35 | 显示全部楼层
ll_j 发表于 2013-8-20 11:56
这样我也知道你的意思了,原来只是判断点与当前线段的关系,投影不到线段上的码位为0,大体是这个这个意 ...

我的这个想法也是起源于论坛上别人的射线法才想到的,所以就把投影不到的,设置为0

点评

ay,讨论这么多,完善的代码快出来了吧,大家等着呢。  详情 回复 发表于 2013-8-20 12:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 13:58 , Processed in 0.408102 second(s), 73 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表