打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
AutoCAD 点和向量运算(Point3d/Vector2d/Vector3d)

以下的Point3d和Vector3d均为

    Autodesk.AutoCAD.Geometry.Point3d

    Autodesk.AutoCAD.Geometry.Vector3d

Point3d     Pa(3,4,5)

                 Pb(3,6,9)

Vector3d   Pab(0,2,4)    Pa到Pb的向量,即pb减去Pa的坐标差

Vector3d   Pba(0,-2,-4) Pb到Pa的向量,即pa减去Pb的坐标差

Dim P1 as Point3d 

Dim P2 as point3d

Dim V1 as Vector3d

Dim a as Vector3d

Dim b as Vector3d

Dim c as Vector3d

'点P2为点P1沿着向量V1的同方向移动V1的距离后得到到点

'(即沿着极坐标移动)

P2 = P1 + V1

'等于P1 = P1 + V1

P1 += V1

'点P2为点P1沿着向量V1的反方向移动V1的距离后得到到点

'(即沿着极坐标移动)

P2 = P1 - V1

 '等于P1 = P1 - V1

P1 -= V1

'向量的加法和减法运算:

  

Vector3d.Negate()

                =反向向量,即V1.Negate() = -V1.

Vector3d.GetNormal()

                =单位向量

Vector3d.GetNormal() * 100 

    即单位向量放大一百倍,向量角度不变,长度100

    V1 *= 100

    V1 = V1 * 100

Point3d.Add(Vector3d)

    点沿着向量方向移动向量的距离得到新的点

Point3d.Subtract(Vector3d)

    点沿着与向量反方向移动得到新的点

Point3d.GetAsVector()

    点的坐标向量化,就相当于点(0,0,0)到Point3d的向量。

Point3d.GetVectorTo(Point3d)

    点到点的向量,比如Pa.GetVectorTo(Pb)=Pab

Vector3d.IsEqualTo(Vector3d)

    两个向量是否相等

Vector3d.IsCodirectionalTo(Vector3d)

    两个向量是否同向

Vector3d.IsParallelTo(Vector3d)

    两个向量是否平行

Vector3d.IsPerpendicularTo(Vector3d)

    两个向量是否垂直

Vector3d.GetAngleTo(Vector3d)

    向量到向量的转角,比如V1.GetVectorTo(V2),始终返回 [0, Pi] 范围内的角度

Vector3d.GetAngleTo(Vector3d , referenceVector3d)

    向量的到向量的转角,比如V1.GetVectorTo(V2 , V3),返回逆时针[0, 2*Pi] 范围内的角度,其中 referenceVector3d 为参考平面的法向量。


Vector3d.IsUnitLength()

    是单位长度?

Vector3d.IsZeroLength()

    是零长度?

Vector3d.Length

    向量的长度

Vector3d.LengthSqrd)

    向量的长度的平方

Vector3d.Mirror(Vector3d)

    向量的镜像

Vector3d.RotateBy(Vector3d)

    向量的旋转

Vector3d.CrossProduct(Vector3d)

    计算两个Vector3D的叉积。

数学上的定义:c=axb

    其中a,b,c均为向量。即两个向量的叉积得到的还是向量!

    性质1:c⊥a,c⊥b,即向量c垂直于向量a,b所在的平面。

    性质2:模长|c|=|a||b|sinθ

    性质3:满足右手法则。从这点我们有axb ≠ bxa,而axb = - bxa。所以我们可以使用叉积的正负值来判断向量a,b的相对位置,即向量b是处于向量a的顺时针方向还是逆时针方向。

    在二维空间中,外积还有另外一个几何意义就是:|a×b|在数值上等于由向量a和向量b构成的平行四边形的面积

Vector3d.DotProduct(Vector3d)

    计算两个Vector3D的点积。

数学定义为a·b=|a|·|b|cosθ ,【θ表示向量a,b的夹角,取值范围为[0,π]

    从定义上,我们知道向量的点积得到的是一个数值。而不是向量(这点大家要注意了!要与叉积进行区别)。另外点积中的夹角<a,b>没有顺序可言,即<a,b>=<b,a>(或a·b=b·a)。所以我们可以通过点积得到两个向量之间的夹角。θ= arccos(a·b / (|a|·|b|))。并且通过点积的正负值,我们可以判断两个向量的方向关系。

    a∙b>0→方向基本相同,夹角在0°到90°之间
    a∙b=0→ 正交,相互垂直
    a∙b<0→ 方向基本相反,夹角在90°到180°之间

Vector3d.OrthoProjectTo(Vector3d)

    V1.OrthoProjectTo(V2),即向量V1在V2的法平面上的投影

Vector3d.ProjectTo(Vector3d , Vector3d)

    V1.ProjectTo(V2 , V3),即向量V1在V2的法平面上的投影

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
圆锥曲线与点的位置关系
圆锥曲线之几何关系代数化处理方法 ...
向量杂题
grasshopper基础练习之两点连线生成矩阵
02控制AutoCAD环境(二) 控制图形窗口(2)缩放和平移当前视图
计算机设备名称词汇(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服