找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1005|回复: 7

[求助]:如何求得一个PLine线所围成的平面的中点

[复制链接]
发表于 2005-4-29 13:59:27 | 显示全部楼层 |阅读模式

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

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

×
我用程序画了一个PLINE线,而且是闭合的。

    现在我想求所画得的面的中心点,该怎么做呀?

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2005-4-29 14:19:09 | 显示全部楼层

Re: [求助]:如何求得一个PLine线所围成的平面的中点

最初由 lgxqf 发布
[B]我用程序画了一个PLINE线,而且是闭合的。

    现在我想求所画得的面的中心点,该怎么做呀?

   请各位过路高手多多指教,谢 谢 [/B]


先用:

[php]
AcDbRegion::createFromCurves Function static Acad::ErrorStatus

createFromCurves(

const AcDbVoidPtrArray& curveSegments,

AcDbVoidPtrArray& regions);

curveSegments Input array of pointers to curve entities used to define the
region's perimeter(s)
regions Returns containing pointers to the AcDbRegion objects created

[/php]

生成AcDbRegion对象

然后用:

[php]
AcDbRegion::getAreaProp Function virtual Acad::ErrorStatus

getAreaProp(

const AcGePoint3d& origin,

const AcGeVector3d& xAxis,

const AcGeVector3d& yAxis,

double& perimeter,

double& area,

AcGePoint2d& centroid,

double momInertia[2],

double& prodInertia,

double prinMoments[2],

AcGeVector2d prinAxes[2],

double radiiGyration[2],

AcGePoint2d& extentsLow,

AcGePoint2d& extentsHigh) const;

origin Input origin of the region
xAxis Input X axis of the region
yAxis Input Y axis of the region
perimeter Returns perimeter of the region
area Returns area of the region
centroid Returns centroid of the region
momInertia[2] Returns moment of inertia of the region
prodInertia Returns product of inertia of the region
prinMoments[2] Returns principal moments of the region
prinAxes[2] Returns principle axes of the region
radiiGyration[2] Returns radii of gyration of the region
extentsLow Returns minimum extents point of the region
extentsHigh Returns maximum extents point of the region
[/php]

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

使用道具 举报

发表于 2005-4-29 21:28:46 | 显示全部楼层
好久没见晓东写CAD的程序了。真是久违了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-29 21:33:29 | 显示全部楼层
我也问一个问题:程序如何处理墙梁交线的问题。希望尽量做到没有BUG。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-29 23:39:42 | 显示全部楼层
墙梁交线的处理要从几个方面考虑:
1,对于普通的墙梁中线交点处按照墙梁宽度的裁剪墙梁的边线。
2,对于边界墙的墙宽封口的处理原则。
3,对于边界梁的梁宽封口处理原则。
4,以上这些都要考虑墙梁的二分之一宽,然后对边线进行裁剪。
5,欢迎杨姐姐来这里做客。。。我也是随便说说,仅供参考。呵呵!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-5-6 00:41:47 | 显示全部楼层
我以前写的一个算法,也没有备份,随便说说,就当是狗尾续貂了。
因为是闭合,所以我可以选取3点为一组,比如说5边形,(0,1,2)(1,2,3)(2,3,4)(3,4,0)(4,0,1)这样就分为5组分别求每组的中点,然后中点又生成个5变形,在按照
上边的来一次,最终5个点会落到一个点上(小于一定的误差),这样所得点就是中点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-6 08:49:52 | 显示全部楼层
逼近算法,经典,思路收了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 14:35 , Processed in 0.280175 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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