该函数返回图形中一个图元与另一个图元相交的点。此函数的输入值是实体和交集类型,可以是以下类型之一:intersectWith()
例如,假设绘图包含下图所示的三条线。第 1 行是“this”,第 3 行是参数实体。如果交集类型为,则点 A 将作为行 1 延伸时行 1(“this”)与行 3 相交的点返回。如果交集类型 isand line2 是参数实体,则不会返回任何数据,因为即使扩展了 line2,也不会与 line1 相交。如果交集类型 isand line2 是参数实体,则返回点 B。如果交集类型为 line2 是参数实体,则不返回任何数据。kExtendThiskExtendArgumentkExtendBothkExtendNone 函数是具有两种形式的重载函数。第二种形式采用一个附加参数,它是用于确定两个实体的明显交集的投影平面。这些是函数的签名:intersectWith()intersectWith() virtual Acad::ErrorStatus AcDbEntity::intersectWith( const AcDbEntity* ent, AcDb::Intersect intType, AcGePoint3dArray& points, int thisGsMarker = 0, int otherGsMarker = 0) const; virtual Acad::ErrorStatus AcDbEntity::intersectWith( const AcDbEntity* ent, AcDb::Intersect intType, const AcGePlane& projPlane, AcGePoint3dArray& points, int thisGsMarker = 0, int otherGsMarker = 0) const; 返回的点始终位于实体(“this”)上。因此,在明显相交的情况下,相交点在返回之前被投影回实体。 该函数的两个版本都允许您提供可选的 GS 标记以优化此功能的性能。如果实体的功能已经实现了GS标记的使用,那么提供GS标记可以定位交叉区域并加快测试速度。例如,在下图中,如果用户选择多边形的一条线,则传入该线的 GS 标记无需测试多边形的其他五条线。intersectWith()intersectWith() |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:46
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.