Skip to content

Commit 7d9f3fe

Browse files
committed
add angle 3D builder
1 parent e4bd722 commit 7d9f3fe

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

src/main/kotlin/org/mechdancer/geometry/rotation3d/Angle3D.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,6 @@ data class Angle3D(val first: Angle, val second: Angle, val third: Angle, val ax
3636
}
3737
}
3838

39-
/**
40-
* 转为内旋
41-
*
42-
* Intrinsic
43-
*/
44-
fun toEuler() = copy(axesOrder = axesOrder.reverse())
45-
4639
companion object {
4740
/**
4841
* 绕 X 轴逆时针旋转 [angle]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.mechdancer.geometry.rotation3d
2+
3+
import org.mechdancer.algebra.core.Matrix
4+
import org.mechdancer.geometry.angle.Angle
5+
6+
/**
7+
* 构造内旋 [Angle3D]
8+
*/
9+
fun euler(first: Angle, second: Angle, third: Angle, axesOrder: AxesOrder = AxesOrder.ZYZ) =
10+
Angle3D(first, second, third, axesOrder.reverse())
11+
12+
/**
13+
* 构造外旋 [Angle3D]
14+
*/
15+
fun rollPitchYaw(first: Angle, second: Angle, third: Angle, axesOrder: AxesOrder = AxesOrder.XYZ) =
16+
Angle3D(first, second, third, axesOrder)
17+
18+
/**
19+
* 从矩阵反解旋转角度
20+
*
21+
* 请见 [Angle3D.fromMatrix]
22+
*/
23+
fun Matrix.toRollPitchYaw(axesOrder: AxesOrder) =
24+
Angle3D.fromMatrix(this, axesOrder)
25+
26+
/**
27+
* 从矩阵反解旋转角度
28+
*
29+
* 请见 [Angle3D.fromMatrix]
30+
*/
31+
fun Matrix.toEuler(axesOrder: AxesOrder) =
32+
Angle3D.fromMatrix(this, axesOrder.reverse())
33+

0 commit comments

Comments
 (0)