CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

点的相交

2023-1-1 04:42| 发布者: admin| 查看: 304| 评论: 0|来自: AutoCAD

该函数返回图形中一个图元与另一个图元相交的点。此函数的输入值是实体和交集类型,可以是以下类型之一:intersectWith()

  • kOnBothOperands (两个实体均未扩展)
  • kExtendThis
  • kExtendArg
  • kExtendBoth

例如,假设绘图包含下图所示的三条线。第 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()


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部