找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1848|回复: 21

[ARX函数]:如何判定两空间矩形的包含关系?

[复制链接]
发表于 2007-1-4 14:53:04 | 显示全部楼层 |阅读模式

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

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

×
如何判定两空间矩形的包含关系?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-1-7 10:08:20 | 显示全部楼层
我想AcBrBrep类应该可以实现这个功能,知道的人很少。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-1-11 11:42:47 | 显示全部楼层
那比较简单:
1、判断两矩形平面的法矢量的夹角,若为0或180度,表示他们位于同一平面,具有可判断性,否则不具有可判断性。
2、若在统一平面,则可用AcGeMatrix3d::alignCoordSys将他们变换到同2D一坐标系下。
接下来的判断我就不用说了吧,比较简单:-)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-2 13:10:20 | 显示全部楼层
难道是用布尔运算么,有没有更好的方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2018-2-1 09:11:09 | 显示全部楼层
直接判断左下角点的xy与右上角点的xy,左下角xy都大于且右上角点xy都小于,就是包含在其内
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-5-20 21:58:49 来自手机 | 显示全部楼层
我后来是这样解决的,获取一个多段线顶点,用ssget wp方式,如果选中了一些物体,那么这些物体被那个物体包住。

点评

矩形2任意点在矩形1内,两矩形不相交,2在1内  详情 回复 发表于 2018-5-20 22:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2018-5-20 22:02:46 | 显示全部楼层
1121443108qaz 发表于 2018-5-20 21:58
我后来是这样解决的,获取一个多段线顶点,用ssget wp方式,如果选中了一些物体,那么这些物体被那个物体包 ...

矩形2任意点在矩形1内,两矩形不相交,2在1内

点评

不知道你说的什么意思,我的方法是针对任意闭合多段线。  详情 回复 发表于 2018-5-22 01:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-5-22 01:10:07 | 显示全部楼层
LoveArx 发表于 2018-5-20 22:02
矩形2任意点在矩形1内,两矩形不相交,2在1内

不知道你说的什么意思,我的方法是针对任意闭合多段线。

点评

我的意思就是: 两个矩形,矩形1,矩形2 只要满足: 1、矩形2的4个顶点有一个在矩形1内部,并且 2、矩形1和矩形2不相交 就可判定矩形2在矩形1内部。 因为点是否在多边形内的算法很成熟,也很简单。  详情 回复 发表于 2018-5-22 01:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2018-5-22 01:26:48 | 显示全部楼层
1121443108qaz 发表于 2018-5-22 01:10
不知道你说的什么意思,我的方法是针对任意闭合多段线。

我的意思就是:
两个矩形,矩形1,矩形2
只要满足:
1、矩形2的4个顶点有一个在矩形1内部,并且
2、矩形1和矩形2不相交

就可判定矩形2在矩形1内部。

因为点是否在多边形内的算法很成熟,也很简单。

上面这个也适合两个任意多边形。

点评

点是否在多边形内怎么判定呢?我搜索论坛只有两个帖子,其中说到两个方法是射线法和向量点积法,我想问除了这两个方法还有没有其它方法。  详情 回复 发表于 2018-5-22 12:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-5-22 12:11:14 | 显示全部楼层
LoveArx 发表于 2018-5-22 01:26
我的意思就是:
两个矩形,矩形1,矩形2
只要满足:

点是否在多边形内怎么判定呢?我搜索论坛只有两个帖子,其中说到两个方法是射线法和向量点积法,我想问除了这两个方法还有没有其它方法。

点评

有好多帖子啊,不是C++的也可以借鉴的,算法是基础。还有个用WINDING数判断的算法 用WINDING数判断点是否在多边形内部的算法及C++/LISP实现代码 其他的: [*](XD::Pnts:RemovePits)删除多段线(点表)  详情 回复 发表于 2018-5-22 12:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2018-5-22 12:22:44 | 显示全部楼层
1121443108qaz 发表于 2018-5-22 12:11
点是否在多边形内怎么判定呢?我搜索论坛只有两个帖子,其中说到两个方法是射线法和向量点积法,我想问除 ...

有好多帖子啊,不是C++的也可以借鉴的,算法是基础。还有个用WINDING数判断的算法

用WINDING数判断是否在多边形内部的算法及C++/LISP实现代码

其他的:


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

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-7-28 10:52:07 来自手机 | 显示全部楼层
现在的想法是获取图形四方向最大点,只要有一点在另一图形之外,则不被包含。否则重复或者被包含。
来自: 微社区
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-12-28 11:20:13 来自手机 | 显示全部楼层
missyou0515 发表于 2007-1-7 10:08
我想AcBrBrep类应该可以实现这个功能,知道的人很少。

acbrbrep什么类能做到呢?
来自: 微社区

点评

AcBrEntity::getPointContainment Function AcBr::ErrorStatusgetPointContainment(const AcGePoint3d& point,AcGe::PointContainment& containment,AcBrEntity*& container) const;Point containment query. Dete  详情 回复 发表于 2018-12-28 11:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2018-12-28 11:32:31 | 显示全部楼层
1121443108qaz 发表于 2018-12-28 11:20
acbrbrep什么类能做到呢?

AcBrEntity::getPointContainment Function
AcBr::ErrorStatus
getPointContainment(
const AcGePoint3d& point,
AcGe::PointContainment& containment,
AcBrEntity*& container) const;
pointAcGe 3D point
containmentAcGe point containment
containerAcBr entity
Point containment query. Determines whether a point lies inside or outside the current object抯 topological boundary. If it lies outside, AcGe::kOutside is returned along with a null container object. If inside, AcGe::kInside is returned along with a copy of the current object. If the point lies on the topological boundary of the current object, AcGe::kOnBoundary is returned along with the lowest level topology object, which corresponds to a containment of the point. For example, if the point lies along an edge boundary of a face, the edge is returned. For the point and the current topology object to be in the same evaluation space, the entire inverted chain of transforms from the object ID array is applied to the point before testing for point containment. The container object is passed as a null AcBrEntity base class reference pointer for getPointContainment() to instantiate.
Returns eInvalidObject if the object is uninitialized or invalidated (that is, empty).
Returns eBrepChanged if the owning AutoCAD entity changed since the object抯 subentity path was last set. As a side effect, the object is invalidated.
Returns eAmbiguousOutput if the containment cannot be determined.
Returns eOutOfMemory if the container entity comes back null.
In the event of an error, the containment reference parameter抯 value is unchanged and thus is meaningless. The container object reference pointer is unchanged, and thus likely points to a null object.

点评

看了一下,可是一般的曲线是没有acbrentity实体的吧,这意思是要先转化成面域吗?  发表于 2019-1-2 16:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 14:43 , Processed in 0.347225 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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