明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: dipenghao

两个多边形相交,如何求两个图形的交集的面积??

  [复制链接]
 楼主| 发表于 2004-9-24 10:06:00 | 显示全部楼层
网格是类AcDbFace四个点形成的。


多段线是AcDbPolyline类形成的。


现在判断出两个实体相交,如果要求面积,可以首先形成面域或构造闭合多义线,都可以得到面积。现在的情况是如何构造??
发表于 2004-9-24 11:24:00 | 显示全部楼层
如果你不知道构成面域的实体,那你就得自己写算法实现求轮廓的函数,


或者你用acedCommand调边界来求。。。。。。


帮不了你,太复杂,没那么多时间的,


只能帮你提供参考意见
 楼主| 发表于 2004-9-27 16:51:00 | 显示全部楼层
实体知道。但是两个实体相交得到的面域可能不止一个。如何选择那个是?????
发表于 2004-9-27 17:06:00 | 显示全部楼层
“两个实体相交得到的面域可能不止一个“


不明白,请贴图说明
 楼主| 发表于 2004-9-28 07:32:00 | 显示全部楼层
命令: _region
选择对象: 找到 1 个
选择对象: 找到 1 个,总计 2 个
选择对象:
已提取 2 个 环。
已创建 2 个 面域。 我用工具栏上的命令:(面域),分别选择了两个实体,结果提示已经创建了两个面域,?我的问题主要是要他们相交的部分 也就是一个AcDbFace(四个点)类和AcDbPolyline类的求交集的面积问题

本帖子中包含更多资源

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

x
发表于 2004-9-28 10:57:00 | 显示全部楼层
你用这两个面域,然后求交呀!!
发表于 2004-9-28 13:22:00 | 显示全部楼层
版主说的只有在两个封闭时才能用。但楼主说的可不是这样,我觉得有个简单的办法,就是用boundary命令。我以前曾企图写个这样的算法,可是效果不太理想,便作罢了。
发表于 2004-9-28 13:45:00 | 显示全部楼层
是要封闭,搂主给的例子也是封闭的呀,


是可以用boundary,有一定限制


最好自己写算法
 楼主| 发表于 2004-9-28 14:23:00 | 显示全部楼层
我这样做的
AcDbVoidPtrArray curveSegments,regions;
curveSegments.append(pFace);
curveSegments.append(pPoly); AcDbRegion reg;
if(Acad::eInvalidInput==reg.createFromCurves(curveSegments,regions))
acutPrintf("不合法\n"); double regArea;
reg.getArea(regArea);
reg.close();
acutPrintf("area=%0.3f\n",regArea); 可能是我理解错了。createFromCurves函数的该怎么使用??
发表于 2004-9-28 16:58:00 | 显示全部楼层
AcDbVoidPtrArray regions;
AcDbRegion::createFromCurves(entities, regions); if (regions.length() < 1)
{
return Acad::eInvalidInput;
}
AcDbRegion *pRegion = new AcDbRegion;
assert(pRegion != NULL); for (int i = 0; i < regions.length(); i++)
{
pRegion->booleanOper(AcDb::kBoolUnite,(AcDbRegion*)regions);//AcDb::kBoolUnite自己用什么类型自己查
delete (AcRxObject*)regions;
} ......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 19:20 , Processed in 0.171844 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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