| 
本帖最后由 newer 于 2014-9-22 21:22 编辑
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
    
 看了这几天几位大师的程序,感觉到几何库太强大了,看了2天,现在说点心得。
 
 关于构造函数 xdge::constructor 构造 kRay3d,kLine3d,kLineSeg3d 的不同。
 
 
 
   
 
 kRay3d 构造出的是 射线实体的几何模型。
 
 
 AcGeRay3d 建构器和析构器 | AcGeRay3d::AcGeRay3d Function  AcGeRay3d( const AcGePoint3d& pnt1, const AcGePoint3d& pnt2); | pnt1 | 输入射线的起点 
 |  | pnt2 
 | 输入任意不同于pnt1的3D点 
 | 
 建构一条起点为pnt1并通过点pnt2的射线。点pnt1必须不同于点pnt2。 AcGeRay3d( const AcGePoint3d& pnt, const AcGeVector3d& vec); | pnt 
 | 输入射线的起点 
 |  | vec 
 | 输入射线的方向矢量 
 | 
 建构一条起点是pnt且方向是vec的射线。vec必须为非零矢量。 AcGeRay3d( const AcGeRay3d& line); 建构一条作为输入射线拷贝的3D射线。 AcGeRay3d(); 默认建构器。建构一条起点是(0,0,0)且方向是(1,0,0)的射线(即是X轴正方向)。 
 
 | 
 
 看下面演示:
 
 
   
  (defun c:tt ()
  (if (and
        (setq p1 (getpoint "\n第一点<退出>:"))
        (setq p2 (getpoint p1 "\n第二点<退出>:"))
        (setq ge (xdge::constructor "kRay3d" p1 p2))
      )
    (progn
      (xdge::entity:make ge)
      (xdge::free)
    )
  )
  (princ)
)
 
 
 
 
 kLine3d 构造出的是 XLINE 的几何模型,
 
 
 AcGeLine3d 建构器和析构器 | AcGeLine3d::AcGeLine3d Function  AcGeLine3d( const AcGePoint3d& pnt1, const AcGePoint3d& pnt2); | pnt1 | 输入任意的3D点 
 |  | Pnt2 
 | 输入不同于点pnt1任意的3D点 
 | 
 通过点pnt1和pnt2建构一条无限的直线。点pnt1和pnt2必须是不同点。 AcGeLine3d( const AcGePoint3d& pnt, const AcGeVector3d& vec); | pnt 
 | 输入任意的3D点 
 |  | vec 
 | 输入任意的3D矢量 
 | 
 通过点pnt和方向矢量vec建构一条无限的直线。vec必须是非零长度的矢量。 AcGeLine3d( const AcGeLine3d& line); 建构一条作为输入直线拷贝的无限3D直线。 AcGeLine3d(); 默认建构器。建构一条与X轴相同无限直线。 
 | 
 
 看下面演示:
 
 
   
  (defun c:tt ()
  (if (and
        (setq p1 (getpoint "\n第一点<退出>:"))
        (setq p2 (getpoint p1 "\n第二点<退出>:"))
        (setq ge (xdge::constructor "kLine3d" p1 p2))
      )
    (progn
      (xdge::entity:make ge)
      (xdge::free)
    )
  )
  (princ)
)
 
 kLineSeg3d 构造出的是LINE的几何模型,
 
 
 AcGeLineSeg3d建构器和析构器 | AcGeLineSeg3d::AcGeLineSeg3d Function  AcGeLineSeg3d( const AcGePoint3d& pnt1, const AcGePoint3d& pnt2); 建构一条从pnt1到pnt2的线段. 但pnt1和pnt2 不能重合。 AcGeLineSeg3d(); 缺省建构器。建构一条从(0,0,0) 到 (1,0,0)的线段. AcGeLineSeg3d( const AcGePoint3d& pnt, const AcGeVector3d& vec); | pnt 
 | 输入线段的起点 
 |  | vec 
 | 输入一个在起点和终点之间的向量 
 | 
 建够一条以pnt为起点pnt+vec为终点的线段。vec长度非零. AcGeLineSeg3d( const AcGeLineSeg3d& line); 建构一个拷贝输入线段的3D线段。 
 
 | 
 看下面演示:
 
 
   
  (defun c:tt ()
  (if (and
        (setq p1 (getpoint "\n第一点<退出>:"))
        (setq p2 (getpoint p1 "\n第二点<退出>:"))
        (setq ge (xdge::constructor "kLineSeg3d" p1 p2))
      )
    (progn
      (xdge::entity:make ge)
      (xdge::free)
    )
  )
  (princ)
)
 
 构造出上述实体的几何模型后,就可以用下面丰富的函数做我们想做的事了。
 
 
 
 
 
 
 
 
 |