com.supermap.data
类 Matrix

java.lang.Object
  继承者 com.supermap.data.Matrix

public class Matrix
extends java.lang.Object

4*4矩阵类。可用于模型骨架缩放、旋转、平移。


构造方法摘要
Matrix()
          默认构造函数,构造一个与类名相同的新函数。
 
方法摘要
 void dispose()
          释放占用资源
 double[] getArrayValue()
          获取矩阵元素值的属性。
static Matrix invert(long handle)
          矩阵的逆矩阵。
static Point3D multiply(Point3D pnt, Matrix mat)
          点与矩阵相乘。
 Matrix multipy(Matrix mat)
          矩阵相乘。
static Matrix rotateX(double angle)
          X方向旋转
static Matrix rotateXYZ(double rotationX, double rotationY, double rotationZ)
          X、Y、Z方向都进行旋转
static Matrix rotateY(double angle)
          Y方向旋转
static Matrix rotateZ(double angle)
          Z方向旋转
static Matrix scale(double x, double y, double z)
          对模型骨架进行缩放。
 void setArrayValue(double[] matrix)
          设置矩阵元素值的属性。
 boolean toAnglesXYZ(double[] anglesXYZ)
          矩阵转换为绕XYZ的顺序旋转的欧拉角,单位为度。
 boolean toAnglesXZY(double[] anglesXYZ)
          矩阵转换为绕XZY的顺序旋转的欧拉角,单位为度。
 boolean toAnglesYXZ(double[] anglesXYZ)
          矩阵转换为绕YXZ的顺序旋转的欧拉角,单位为度。
 boolean toAnglesYZX(double[] anglesXYZ)
          矩阵转换为绕YZX的顺序旋转的欧拉角,单位为度。
 boolean toAnglesZXY(double[] anglesXYZ)
          矩阵转换为绕ZXY的顺序旋转的欧拉角,单位为度。
 boolean toAnglesZYX(double[] anglesXYZ)
          矩阵转换为绕ZYX的顺序旋转的欧拉角,单位为度。
static Matrix translate(double x, double y, double z)
          平移,单位为米。
static Matrix transpose(long handle)
          矩阵的转置矩阵。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Matrix

public Matrix()
默认构造函数,构造一个与类名相同的新函数。

方法详细信息

getArrayValue

public double[] getArrayValue()
获取矩阵元素值的属性。

返回:

setArrayValue

public void setArrayValue(double[] matrix)
设置矩阵元素值的属性。

参数:
matrix - 设置矩阵

multipy

public Matrix multipy(Matrix mat)
矩阵相乘。

参数:
mat - 与之相乘的矩阵
返回:
相乘后的矩阵。

multiply

public static Point3D multiply(Point3D pnt,
                               Matrix mat)
点与矩阵相乘。

参数:
pnt - 点坐标
mat - 与之相乘的矩阵
返回:
相乘后新的点坐标。

toAnglesXYZ

public boolean toAnglesXYZ(double[] anglesXYZ)
矩阵转换为绕XYZ的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - XYZ旋转角度数组。
返回:

toAnglesXZY

public boolean toAnglesXZY(double[] anglesXYZ)
矩阵转换为绕XZY的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - XZY旋转角度数组。
返回:

toAnglesYXZ

public boolean toAnglesYXZ(double[] anglesXYZ)
矩阵转换为绕YXZ的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - YXZ旋转角度数组。
返回:

toAnglesYZX

public boolean toAnglesYZX(double[] anglesXYZ)
矩阵转换为绕YZX的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - YZX旋转角度数组。
返回:

toAnglesZXY

public boolean toAnglesZXY(double[] anglesXYZ)
矩阵转换为绕ZXY的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - ZXY旋转角度数组。
返回:

toAnglesZYX

public boolean toAnglesZYX(double[] anglesXYZ)
矩阵转换为绕ZYX的顺序旋转的欧拉角,单位为度。

参数:
anglesXYZ - ZYX旋转角度数组。
返回:

translate

public static Matrix translate(double x,
                               double y,
                               double z)
平移,单位为米。

参数:
x - X轴移动大小
y - y轴移动大小
z - z轴移动大小
返回:
平移后的矩阵。

scale

public static Matrix scale(double x,
                           double y,
                           double z)
对模型骨架进行缩放。

参数:
x - X方向缩放比例,一个Double值。
y - y方向缩放比例,一个Double值。
z - z方向缩放比例,一个Double值。
返回:

rotateXYZ

public static Matrix rotateXYZ(double rotationX,
                               double rotationY,
                               double rotationZ)
X、Y、Z方向都进行旋转

参数:
rotationX - 设置X方向的旋转角度,一个Double值。
rotationY - 设置Y方向的旋转角度,一个Double值。
rotationZ - 设置Z方向的旋转角度,一个Double值。
返回:

rotateX

public static Matrix rotateX(double angle)
X方向旋转

参数:
angle - 设置X方向的旋转角度,一个Double值。
返回:
沿X方向旋转后的矩阵。

rotateY

public static Matrix rotateY(double angle)
Y方向旋转

参数:
angle - 设置Y方向的旋转角度,一个Double值。
返回:
沿Y方向旋转后的矩阵。

rotateZ

public static Matrix rotateZ(double angle)
Z方向旋转

参数:
angle - 设置Z方向的旋转角度,一个Double值。
返回:
沿Z方向旋转后的矩阵。

invert

public static Matrix invert(long handle)
矩阵的逆矩阵。

参数:
handle - 句柄
返回:
矩阵的逆矩阵。

transpose

public static Matrix transpose(long handle)
矩阵的转置矩阵。

参数:
handle - 句柄
返回:
矩阵的转置矩阵

dispose

public void dispose()
释放占用资源