首页 > 其他分享 >AutoCAD Geometry 中BoundedPlane 是平行四边形,不是三角形

AutoCAD Geometry 中BoundedPlane 是平行四边形,不是三角形

时间:2022-09-28 08:33:37浏览次数:59  
标签:AutoCAD Geometry BoundedPlane 交点 var new Point3d

 

 

第一次使用这个类,

起初以为这个BoundedPlane 是三角形,

没想到在求取交点时,

有交点位于三角形之外,

在QQ群193522571中请教,

群友45168391告诉我BoundedPlane是平行四边形,

不是三角形,

并且告诉我需要对对加过进行判断,

或者简单的求两次,

用不同的BoundedPlane的来求,

都能得到交点,

交点必然在三角形之中。

Point3d p1 = new Point3d();
Point3d p2 = new Point3d(3, 0, 0);
Point3d p3 = new Point3d(1, 3, 0);
Point3d p4 = new Point3d(3, 2, 0);
Point3d p5 = new Point3d(3, 2, 1);

Point3d p6 = new Point3d(3, 4, 0);
Point3d p7 = new Point3d(3, 4, 1);

BoundedPlane bp1 = new BoundedPlane(p1, p2, p3);
BoundedPlane bp2 = new BoundedPlane(p2, p3, p1);
BoundedPlane bp3 = new BoundedPlane(p3, p1, p2);

var l1 = new LineSegment3d(p4, p5);
var l2 = new LineSegment3d(p6, p7);

var pts11 = l1.IntersectWith(bp1);
var pts12 = l1.IntersectWith(bp2);
var pts13 = l1.IntersectWith(bp3);

var pts21 = l2.IntersectWith(bp1);
var pts22 = l2.IntersectWith(bp2);
var pts23 = l2.IntersectWith(bp3);

if (pts11 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp11交点个数为:" + pts11.Length);
}
if (pts12 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp12交点个数为:" + pts12.Length);
}
if (pts13 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp13交点个数为:" + pts13.Length);
}
if (pts21 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp21交点个数为:" + pts21.Length);
}
if (pts22 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp22交点个数为:" + pts22.Length);
}
if (pts23 != null)
{
    Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("bp23交点个数为:" + pts23.Length);
}

 

这几天比较忙,

没有时间进行一步研究,

只能简单记录一下,

有遇到类似问题的朋友可以继续研究一下。

 

标签:AutoCAD,Geometry,BoundedPlane,交点,var,new,Point3d
From: https://www.cnblogs.com/myzw/p/16736709.html

相关文章

  • AutoCAD 剪贴板格式的 .net 声明
    结构体声明[StructLayout(LayoutKind.Sequential)]structRect{publicintleft;publicinttop;publicintright;publicintbottom;};......
  • IfcConnectionGeometry
    IfcConnectionGeometryIfcConnectionGeometry用于描述促进两个对象物理连接的几何和拓扑约束。它被设想为应用于元素连接关系的控件。 注意,元素连接关系通常通过引用相......
  • ORA-28579 在从外部过程代理程序回调时,发生网络错误,ORA-06512 在"SDE.ST_GEOMETRY_SHA
      如图所示,在执行sde.st_transform方法时报错。环境是arcgis10.8 oracle是12C,版本号是v12.1.0.2.0但是执行ST_GEOMETRY方法是可以的,说明配置没有问题。 说重点,......
  • IfcConnectionGeometry
    IfcConnectionGeometry实体定义IfcConnectionGeometry用于描述促进两个对象物理连接的几何和拓扑约束。它被设想为应用于元素连接关系的控件。 注意:元素连接关系通常......
  • IfcConnectionCurveGeometry
    IfcConnectionCurveGeometry实体定义IfcConnectionCurveGeometry用于描述几何约束,这些几何约束有助于在曲线或与曲线几何相关的边上实现两个对象的物理连接。它被设想为......
  • 仅Intel电脑可用:设计2D/3D文档绘图Autodesk AutoCAD 2021
    AutodeskAutoCAD2021是Mac上的二维和三维CAD设计软件,用于产品衍生式设计,创建设计方案,三维模型参数化,建模部件组织,创建制作清晰工程图,设计自动化配置等,AutoCAD2021增强......
  • 【笔记】EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks
    EG3D:EfficientGeometry-aware3DGenerativeAdversarialNetworksIntroduction使用单视角2D图片集,无监督地生成高质量且视角一致性强的3D模型,一直以来都是一个挑战。......
  • Geometry模块之File IO
    1读取PointCloud首先要明白,该库所支持的点云文件类型都有哪些,官网写的很清楚:文件类型类型描述xyz每一行由[x,y,z]三维坐标构成xyzn每一行由[x,y......