CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

使用基本几何类型

2024-5-18 18:26| 发布者: admin| 查看: 116| 评论: 0|原作者: admin|来自: AutoCAD

使用基本几何类型

以下示例显示了点类、向量类和矩阵类中一些最常用的函数和运算符。这些示例使用 3D 类,但其中大多数也适用于 2D 类。

点和向量的默认构造函数将所有坐标初始化为 0。也可以通过指定点和向量的坐标来构造它们,如下所示:

AcGePoint3d    p1(2.0,5.0,-7.5), p2, p3(1.0,2.0,3.0);
AcGeVector3d   v1(3.0,4.0,5.0), v2(0.0,1.0,-1.0), v3;

点类和向量类提供 、 、 和运算符。这些运算符允许以与内置类型(如双精度和整数)大致相同的方式使用点和向量。以下是加减点和向量的示例:++=--=

p2 = p1 + v1;       // Set p2 to sum of p1 and v1.
p1 += v1;           // Add v1 to p1.
p3 -= v1;           // Subtract v1 from p3.
v3 = v1 + v2;       // Set v3 to sum of v1 and v2.
v1 += v2;           // Add v2 to v1.
v3 = v1 - v2;       // Set v3 to difference of v1 and v2.

没有用于加两点的运算符;但是,可以将一个点转换为向量,然后可以将其添加到另一个点:+

p1 += p2.asVector();

以下是如何获取向量负数的示例:

v2 = -v1;           // Set v2 to negative of v1.
v1.negate();        // This is equivalent to v1 = -v1.

以下是缩放矢量的不同方法的示例:

v1 *= 2.0;          // Doubles the length of v1.
v3 = v1 / 2.0;      // Set v3 to half the length of v1.
v1.normalize();     // Make v1 a unit vector.

点和向量类包含许多用于计算距离和长度的查询函数:

double len = v2.length();  // Length of v2.
len = p1.distanceTo(p2);   // Distance from p1 to p2.

以下函数对于计算两个 3D 向量之间的角度非常有用。下面返回 和 之间的角度,其中角度是逆时针方向的(假设垂直于 和 ):v1v2v3v3v1v2

angle = v1.angleTo(v2,v3);

以下函数返回布尔值(true 或 false),可在语句中使用:if

if (v1.isZeroLength())   
if (v1.isParallelTo(v2))
if (v1.isPerpendicularTo(v2)) 

vector 类包含用于常用向量运算的函数:

len = v1.dotProduct(v2);
v3 = v1.crossProduct(v2);

矩阵的默认构造函数将矩阵初始化为单位矩阵:

AcGeMatrix3d   mat1, mat2, mat3;

下面围绕 和 定义的线旋转 90 度:p3p1v1

mat1.setToRotation ( kPi/2.0, v1, p1 );
p3 = mat1 * p2;

如果矩阵不是单数,则矩阵可以反转:

if (!mat2.isSingular())
    mat2.invert();

运算符是为连接矩阵而定义的:*

mat3 = mat1 * mat2;

以下测试矩阵是否在所有三个坐标中包含相等的缩放(即,它不会改变应用它的任何实体的形状):

if (mat.isUniScaledOrtho())

父主题:

  1. 使用几何库

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-5 18:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部