找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1224|回复: 9

[ARX函数]:acdb2dpolyline定义中的凸度问题?

[复制链接]
发表于 2002-5-9 20:58:04 | 显示全部楼层 |阅读模式

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

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

×
1:凸度的定义。
2:如何利用已知弧的点或角度算出凸度?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-5-10 03:09:24 | 显示全部楼层
可以利用已知弧的中心角计算凸度,凸度是中心角正切的四分之一,逆时针方向为正,顺时针方向为副。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-10 15:51:20 | 显示全部楼层

Re: [ARX函数]:acdb2dpolyline定义中的凸度问题?

最初由 xulixin 发布
[B]1:凸度的定义。
2:如何利用已知弧的点或角度算出凸度? [/B]


凸度的算法如HOBOSOFT所说。

其实不用你自己算,ARX的对象库都为我们提供方法了,不管是AcDb2dPolyline 还是 AcDbPolyline 都有方法,下面的代码是XDRX_API里面的C++库函数,将2DPOLYLINE的顶点保存到AcGePoint3dArray数组和凸度保存到AcGeDoubleArray里面

[php]

void
XdDbUtils::collectVertices(const AcDb2dPolyline* pline, AcGePoint3dArray& pts,
                                                   AcGeDoubleArray& bulges, BOOL asWcsPts)
{
        ASSERT(pline != NULL);
        ASSERT(pts.isEmpty() && bulges.isEmpty());
       
        AcDbObjectIterator* vertexIter = pline->vertexIterator();
        ASSERT(vertexIter != NULL);
        if (vertexIter == NULL)
                return;
       
        AcDb2dVertex* vertex;
        for (; !vertexIter->done(); vertexIter->step()) {
                if (acdbOpenObject(vertex, vertexIter->objectId(), AcDb::kForRead) == Acad::eOk) {
                        if (vertex->vertexType() != AcDb::k2dSplineCtlVertex) {
                                if (asWcsPts)
                                        pts.append(pline->vertexPosition(*vertex));                // returns WCS
                                else
                                        pts.append(vertex->position());                                        // returns ECS
                                bulges.append(vertex->bulge());
                        }
                        vertex->close();
                }
        }
        delete vertexIter;
       
        ASSERT(pts.isEmpty() == Adesk::kFalse);
       
        if (pline->isClosed()) {
                AcGePoint3d tmpPt = pts[0];                // get around Adesk dynamic array bug
                pts.append(tmpPt);
                bulges.append(0.0);
        }
}
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-13 01:03:47 | 显示全部楼层
好像acdbpolyline用pedit "s"拟和后得到的vertex->bulge值总为0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-25 15:54:33 | 显示全部楼层
最初由 HoboSoft 发布
[B]可以利用已知弧的中心角计算凸度,凸度是中心角正切的四分之一,逆时针方向为正,顺时针方向为副。 [/B]


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

使用道具 举报

发表于 2004-6-25 20:59:27 | 显示全部楼层
最初由 HoboSoft 发布
[B]可以利用已知弧的中心角计算凸度,凸度是中心角正切的四分之一[/COLOR],逆时针方向为正,顺时针方向为副。 [/B]


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

使用道具 举报

发表于 2004-6-25 23:37:41 | 显示全部楼层
弧度四分之一后再正切,原来如此
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-27 10:50:46 | 显示全部楼层
凸度值用来表示当前点和下一个定点的连接形势。
凸度是中心角正切的四分之一,逆时针方向为正,顺时针方向为负。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-18 23:33:41 | 显示全部楼层
最初由 小树袋熊 发布
[B]弧度四分之一后再正切,原来如此 [/B]


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

使用道具 举报

发表于 2004-7-19 22:04:28 | 显示全部楼层
AutoDesk 对凸度的概念和定义很高明:使实数在整个范围可以与圆周角 -2PI 到 +2PI
一一对应。用不着判断哪些实数值无效。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 22:25 , Processed in 0.202429 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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