找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1391|回复: 7

[求助]:请教关于判别交点的问题。

[复制链接]
发表于 2002-5-8 15:41:12 | 显示全部楼层 |阅读模式

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

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

×
我在ARX程序里面选定了一些点,怎样来判别这些点的类型?
主要是识别这些点是否为两条直线的交点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-5-8 19:50:52 | 显示全部楼层

Re: [求助]:请教关于判别交点的问题。

最初由 colemanyang 发布
[B]我在ARX程序里面选定了一些点,怎样来判别这些点的类型?
主要是识别这些点是否为两条直线的交点。 [/B]

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

使用道具 举报

 楼主| 发表于 2002-5-9 04:22:31 | 显示全部楼层
我是想知道在求交点的时候,用的是哪一个ARX函数?怎么来用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-9 05:15:00 | 显示全部楼层
最初由 colemanyang 发布
[B]我是想知道在求交点的时候,用的是哪一个ARX函数?怎么来用? [/B]

int acdbInters(const ads_point from1,
                    const ads_point to1,
                    const ads_point from2,
                    const ads_point to2,
                    int teston,
                    ads_point result)
from1,to1第一条直线两端点
from2,to2第二条直线两端点
teston=0,result返回交点(线段上或延长线上)
teston!=0,result返回交点(线段上)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-9 05:27:43 | 显示全部楼层
最初由 colemanyang 发布
[B]我是想知道在求交点的时候,用的是哪一个ARX函数?怎么来用? [/B]


1、如果你已经得到了一些点,判断这个点是否是两条曲线(不仅仅是直线)的交点,可以用:
   这个点是否同时在两条曲线上(事先判断两条曲线是否重合)
   如果使用AcDb对象,可以用AcDbCurve::getClosestPointTo得到和这个点对应的曲线上最近的点PT,然后使用点类的AcGePoint3d::distanceTo判断两点距离是否在一个非常小的误差内就可以判断是否点在曲线上了。

   如果两条直线是AcGe对象,那么可以直接使用几何类的AcGeCurve3d::isOn来判断是否点在几何曲线上

2、如何你有两条曲线,而要求得交点,ARX的方法是:

  使用所有实体的基类的AcDbEntity::intersectWith方法就可以了。

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

使用道具 举报

 楼主| 发表于 2002-5-9 13:29:02 | 显示全部楼层
那这个非常小的误差是多少呢?有具体化一些的概念吗?
是不是用AcGeTol::equalPoint()成员函数来取得呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-9 14:09:40 | 显示全部楼层
最初由 colemanyang 发布
[B]那这个非常小的误差是多少呢?有具体化一些的概念吗?
是不是用AcGeTol::equalPoint()成员函数来取得呢? [/B]


ARX的默认的误差是1e-10,即你说的AcGeTol::equalPoint()的值,你可以set它为你具体应用的误差,比如可以1e-5或者你要求1e-2这么小就满足你的应用(或具体要求),或者你的程序不必使用AcGeTol对象,直接在diatanceTo里面小于一个指定的数值也行,这完全取决于你的要求。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-12 07:51:15 | 显示全部楼层
使用acdbInters( )函数并不是对数据库中的两条线来求交点,这是一个几何辅助函数,需要自己构造两条直线,如果对数据库中的图形数据求交点,还是使用intersectWith( )函数比较好,它可以对所有的图形元素求交点喔!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:41 , Processed in 0.288756 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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