找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 502|回复: 4

[求助]:如何用AcDbLine另外生成一条AcDbRay?

[复制链接]
发表于 2003-7-29 22:20:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我想用一条AcDbLine的起点作为AcDbRay的起点另外生成一条射线,且射线要通过直线的终点。我刚学ARX,不知如何生成,哪位能帮帮我吗?先谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-30 08:32:04 | 显示全部楼层
如果在开发过程中有什么问题和好的技巧可以到论坛上来与大家一起讨论一下!!
:)
-------------
AcDbRay ray;
AcDbLine line;
AcGePoint3d ptBase;
AcGeVector3d vec;
ptBase =line.startPoint();
vec = line.endPoint() - line.startPoint();
vec.normalize();
ray.setBasePoint(ptBase);
ray.setUnitDir(vec);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-30 18:57:19 | 显示全部楼层
谢谢HillMan斑竹的热心帮助。
不过我还有二点不明白:
一是AcGeVector3d::normal()与AcGeVector3d::normalize()有何不同?
二是两个AcGeVector3d对象相减、相加、相乘的几何意义是什么?
再次感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-30 19:07:06 | 显示全部楼层
最初由 fengyou 发布
[B]谢谢HillMan斑竹的热心帮助。
不过我还有二点不明白:
一是AcGeVector3d::normal()与AcGeVector3d::normalize()有何不同?
二是两个AcGeVector3d对象相减、相加、相乘的几何意义是什么?
再次感谢! [/B]


都是求单位向量,但是AcGeVector3d::normalize()返回的是引用,可以直接改变参数。


AcGeVector3d::normal() 需要再复制给其他向量,不影响原来的参数值。

  1. [font=courier]
  2. AcGeVector3d::normal Function AcGeVector3d

  3. normal(

  4. const AcGeTol& tol = AcGeContext::gTol) const;

  5. tol Input tolerance

  6. Returns the unit vector codirectional to this vector.

  7. The vector is not normalized if its length is less than tol.equalVector(), in
  8. which case the returned vector is the same as this vector.
  9. [/font]


  1. [font=courier]
  2. AcGeVector3d::normalize Function AcGeVector3d &

  3. normalize(

  4. const AcGeTol& tol = AcGeContext::gTol);

  5. tol Input tolerance

  6. Sets this vector to the unit vector codirectional to this vector. [color=blue]Returns the
  7. reference to this vector. [/color]This vector is not normalized if its length is less
  8. than tol.equalVector(), in which case it remains unchanged.
  9. [/font]


帮助文件写的很清楚。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-30 19:17:13 | 显示全部楼层
最初由 fengyou 发布
[B]谢谢HillMan斑竹的热心帮助。
不过我还有二点不明白:
一是AcGeVector3d::normal()与AcGeVector3d::normalize()有何不同?
二是两个AcGeVector3d对象相减、相加、相乘的几何意义是什么?
再次感谢! [/B]


向量在数学上是有方向的,可以理解为“相对位移”。

向量之间没有加减乘除,点和向量可以加减,得到“相对位移”后的另外点。

向量和向量之间可以“差积”,比如笛卡儿坐标系,描述X轴用向量(1 0 0) , Y轴是(0 1 0).

那么X和Y的差集(crossProduct)得到的是符合“右手法则”的垂直于他们的向量,就是Z轴 (0 0 1).

向量和向量之间还可以“点积”(dotProduct),得到的是两个向量的“夹角”的正弦。

如果你要求两个向量的夹角,可以点积。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 02:36 , Processed in 0.316474 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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