com.ardor3d.math.Quaternion.fromEulerAngles()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(2.8k)|赞(0)|评价(0)|浏览(127)

本文整理了Java中com.ardor3d.math.Quaternion.fromEulerAngles方法的一些代码示例,展示了Quaternion.fromEulerAngles的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Quaternion.fromEulerAngles方法的具体详情如下:
包路径:com.ardor3d.math.Quaternion
类名称:Quaternion
方法名:fromEulerAngles

Quaternion.fromEulerAngles介绍

[英]Updates this quaternion from the given Euler rotation angles, applied in the given order: heading, attitude, bank.
[中]根据给定的欧拉旋转角度更新此四元数,并按给定顺序应用:航向、姿态、倾斜。

代码示例

代码示例来源:origin: com.ardor3d/ardor3d-math

/**
 * Updates this quaternion from the given Euler rotation angles, applied in the given order: heading, attitude,
 * bank.
 * 
 * @param angles
 *            the Euler angles of rotation (in radians) stored as heading, attitude, and bank.
 * @return this quaternion for chaining
 * @throws ArrayIndexOutOfBoundsException
 *             if angles is less than length 3
 * @throws NullPointerException
 *             if angles is null.
 */
public Quaternion fromEulerAngles(final double[] angles) {
  return fromEulerAngles(angles[0], angles[1], angles[2]);
}

代码示例来源:origin: Renanse/Ardor3D

/**
 * Updates this quaternion from the given Euler rotation angles, applied in the given order: heading, attitude,
 * bank.
 * 
 * @param angles
 *            the Euler angles of rotation (in radians) stored as heading, attitude, and bank.
 * @return this quaternion for chaining
 * @throws ArrayIndexOutOfBoundsException
 *             if angles is less than length 3
 * @throws NullPointerException
 *             if angles is null.
 */
public Quaternion fromEulerAngles(final double[] angles) {
  return fromEulerAngles(angles[0], angles[1], angles[2]);
}

代码示例来源:origin: Renanse/Ardor3D

@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testBadEuler1() {
  new Quaternion().fromEulerAngles(new double[2]);
}

代码示例来源:origin: Renanse/Ardor3D

@Test
public void testEulerAngles() {
  final Quaternion quat = new Quaternion().fromEulerAngles(new double[] { MathUtils.HALF_PI, 0, 0 });
  assertTrue(1.0 == quat.magnitude());
  assertTrue(Math.abs(Vector3.NEG_UNIT_Z.distance(quat.apply(Vector3.UNIT_X, null))) <= MathUtils.EPSILON);
  quat.fromEulerAngles(0, -MathUtils.HALF_PI, 0);
  assertTrue(1.0 == quat.magnitude());
  assertTrue(Math.abs(Vector3.NEG_UNIT_Y.distance(quat.apply(Vector3.UNIT_X, null))) <= MathUtils.EPSILON);
  quat.fromEulerAngles(0, 0, MathUtils.HALF_PI);
  assertTrue(1.0 == quat.magnitude());
  assertTrue(Math.abs(Vector3.UNIT_Z.distance(quat.apply(Vector3.UNIT_Y, null))) <= MathUtils.EPSILON);
  quat.fromEulerAngles(0, MathUtils.HALF_PI, 0);
  double[] angles = quat.toEulerAngles(null);
  final Quaternion quat2 = new Quaternion().fromEulerAngles(angles);
  assertEquals(quat, quat2);
  quat.fromEulerAngles(0, -MathUtils.HALF_PI, 0);
  angles = quat.toEulerAngles(null);
  quat2.fromEulerAngles(angles);
  assertEquals(quat, quat2);
  quat.fromEulerAngles(0, 0, MathUtils.HALF_PI);
  angles = quat.toEulerAngles(null);
  quat2.fromEulerAngles(angles);
  assertEquals(quat, quat2);
}

代码示例来源:origin: Renanse/Ardor3D

quat.fromEulerAngles(MathUtils.QUARTER_PI, MathUtils.PI, MathUtils.HALF_PI);
final Vector3 rotated = new Vector3(1, 1, 1);
quat.apply(rotated, rotated);

相关文章