mxcad_2d API 文档 / 2d / McGeMatrix3d
Class: McGeMatrix3d
2d.McGeMatrix3d
表示三维矩阵对象
Table of contents
Constructors
Properties
Methods
- clone
- copy
- det
- getData
- invert
- isEqualTo
- isSingular
- postMultBy
- preMultBy
- scale
- setCoordSystem
- setMirror
- setToIdentity
- setToProduct
- setToRotation
- setToScaling
- setToTranslation
- transposeIt
Constructors
constructor
• new McGeMatrix3d(imp?
)
构造函数。
Example
import { McGeMatrix3d } from "mxcad"
const matrix = new McGeMatrix3d()
Parameters
Name | Type | Description |
---|---|---|
imp? | object | 内部实现对象 |
Properties
imp
• imp: any
内部实现对象
kIdentity
▪ Static
kIdentity: McGeMatrix3d
乘法的单位矩阵
Methods
clone
▸ clone(): McGeMatrix3d
刻隆一个三维矩阵对象
Example
// matrix1 一个三维矩阵对象
const matrix = matrix1.clone()
Returns
三维矩阵对象
copy
▸ copy(val
): McGeMatrix3d
复制对象的值
Parameters
Name | Type | Description |
---|---|---|
val | McGeMatrix3d | 三维矩阵对象 |
Returns
复制后的三维矩阵对象
// matrix1 一个三维矩阵对象
const matrix = new McGeMatrix3d();
matrix.copy(matrix1)
det
▸ det(): number
求矩阵的行列式。
Example
// matrix 表示一个三维矩阵对象
const detNum = matrix.det();
console.log(detNum)
Returns
number
矩阵的行列式。
getData
▸ getData(row
, col
): number
获取矩阵中指定位置的元素值。
Example
// matrix 表示一个三维矩阵对象
const data = matrix.getData(2,3)
console.log(data)
Parameters
Name | Type | Description |
---|---|---|
row | number | 行索引。 |
col | number | 列索引。 |
Returns
number
指定位置的元素值。
invert
▸ invert(): McGeMatrix3d
求矩阵的逆矩阵。
Example
// matrix表示一个三维矩阵对象
const mat_invert = matrix.clone().invert();
Returns
isEqualTo
▸ isEqualTo(mat
): boolean
判断矩阵是否与指定的矩阵相等。
Example
// matrix1 matrix2 表示两个三维矩阵对象
const res = matrix1.isEqualTo(matrix2);
console.log(res)
Parameters
Name | Type | Description |
---|---|---|
mat | McGeMatrix3d | 指定的矩阵。 |
Returns
boolean
如果相等返回 true,否则返回 false。
isSingular
▸ isSingular(): boolean
判断矩阵是否为奇异矩阵。
Example
// matrix表示一个三维矩阵对象
const res = matrix.isSingular();
console.log(res)
Returns
boolean
如果是奇异矩阵返回 true,否则返回 false。
postMultBy
▸ postMultBy(rightSide
): McGeMatrix3d
右乘指定的矩阵。
Example
// matrix1 表示一个三维矩阵对象
const matrix = new McGeMatrix3d()
matrix.postMultBy(matrix1);
Parameters
Name | Type |
---|---|
rightSide | McGeMatrix3d |
Returns
返回右乘后的矩阵
preMultBy
▸ preMultBy(leftSide
): McGeMatrix3d
左乘指定的矩阵。
Example
// matrix1 表示一个三维矩阵对象
const matrix = new McGeMatrix3d()
matrix.preMultBy(matrix1);
Parameters
Name | Type | Description |
---|---|---|
leftSide | McGeMatrix3d | 左侧矩阵。 |
Returns
返回左乘后的矩阵
scale
▸ scale(): number
获取矩阵的缩放因子。
Example
// matrix 表示一个三维矩阵对象
const scaleNum = matrix.scale()
console.log(scaleNum)
Returns
number
矩阵的缩放因子。
setCoordSystem
▸ setCoordSystem(origin
, xAxis
, yAxis
, zAxis
): McGeMatrix3d
将矩阵设置为指定的坐标系。
Example
import { McGeMatrix3d , McGePoint3d, McGeVector3d} from "mxcad"
const m1 = new McGeMatrix3d()
m1.setCoordSystem(new McGePoint3d(), new McGeVector3d(), new McGeVector3d(), new McGeVector3d())
Parameters
Name | Type | Description |
---|---|---|
origin | McGePoint3d | 坐标系原点。 |
xAxis | McGeVector3d | X 轴向量。 |
yAxis | McGeVector3d | Y 轴向量。 |
zAxis | McGeVector3d | Z 轴向量。 |
Returns
setMirror
▸ setMirror(pt1
, pt2
): McGeMatrix3d
将矩阵设置为镜向矩阵
Example
import { McGeMatrix3d, McDbEntity } from "mxcad";
const matrix = new McGeMatrix3d();
const event = new McDbEntity();
matrix.setMirror(new McGeVector3d(0, 0, 0), new McGeVector3d(20, 0, 0));//平移
event.transformBy(matrix);
Parameters
Name | Type |
---|---|
pt1 | McGePoint3d |
pt2 | McGePoint3d |
Returns
setToIdentity
▸ setToIdentity(): McGeMatrix3d
将矩阵设置为单位矩阵。
Example
// matrix 表示一个三维矩阵对象
matrix.setToIdentity()
Returns
setToProduct
▸ setToProduct(mat1
, mat2
): McGeMatrix3d
将矩阵设置为两个矩阵的乘积。
Example
// matrix1 matrix2 表示两个三维矩阵对象
const matrix = new McGeMatrix3d()
matrix.setToProduct(matrix1, matrix2);
Parameters
Name | Type | Description |
---|---|---|
mat1 | McGeMatrix3d | 第一个矩阵。 |
mat2 | McGeMatrix3d | 第二个矩阵。 |
Returns
setToRotation
▸ setToRotation(angle
, axis
, center
): McGeMatrix3d
将矩阵设置为绕指定轴旋转指定角度的矩阵。
Example
import { McGeMatrix3d, McDbEntity } from "mxcad";
let matrix = new McGeMatrix3d();
const event = new McDbEntity();
matrix.setToRotation(Math.PI, McGeVector3d.kZAxis / 180.0, new McGeVector3d(20,10,0));//平移
event.transformBy(matrix);
Parameters
Name | Type | Description |
---|---|---|
angle | number | 旋转角度。 |
axis | McGeVector3d | 旋转轴向量。 |
center | McGePoint3d | 旋转中心点。 |
Returns
setToScaling
▸ setToScaling(scaleAll
, center
): McGeMatrix3d
将矩阵设置为缩放矩阵。
Example
import { McGeMatrix3d, McDbEntity } from "mxcad";
let matrix = new McGeMatrix3d();
const event = new McDbEntity();
matrix.setToScaling(0.5, new McGeVector3d(0, 0, 0));//平移
event.transformBy(matrix);
Parameters
Name | Type | Description |
---|---|---|
scaleAll | number | 缩放因子。 |
center | McGePoint3d | 缩放中心点。 |
Returns
setToTranslation
▸ setToTranslation(vec
): McGeMatrix3d
将矩阵设置为平移矩阵。
Example
import { McGeMatrix3d, McDbEntity } from "mxcad";
let matrix = new McGeMatrix3d();
const event = new McDbEntity();
matrix.setToTranslation(new McGeVector3d(20,10,0));//平移
event.transformBy(matrix);
Parameters
Name | Type | Description |
---|---|---|
vec | McGeVector3d | 平移向量。 |
Returns
transposeIt
▸ transposeIt(): McGeMatrix3d
将矩阵转置。
Example
// matrix表示一个三维矩阵对象
const mst_trs = matrix.clone().transposeIt();