webcface.transform module
- class webcface.transform.AxisSequence(value)[source]
Bases:
IntEnum
オイラー角の回転順序 (ver3.0〜)
右手系の座標系で、
内的回転(intrinsic rotation)でz軸,y軸,x軸の順に回転させる系 = 外的回転(extrinsic rotation)でX軸,Y軸,Z軸の順に回転させる系 = 回転行列がZ(α)Y(β)X(γ)と表される系 を、 AxisSequence::ZYX と表記する。 * ver2.3までの実装はすべてZYXで、現在もWebCFaceの内部表現は基本的にZYXの系である。 * またWebCFaceのインタフェースでオイラー角の回転角を指定する場合、 軸の指定順は内的回転を指す。(AxisSequenceにおける左から右の並び順と一致。)
- XYX = 1
- XYZ = 6
- XZX = 4
- XZY = 9
- YXY = 5
- YXZ = 11
- YZX = 7
- YZY = 2
- ZXY = 8
- ZXZ = 0
- ZYX = 10
- ZYZ = 3
- class webcface.transform.Point(pos: Sequence[SupportsFloat])[source]
Bases:
object
3次元or2次元の座標
手動でコンストラクタを呼んでもいいが、 PointをうけとるAPIは基本的に Sequence[SupportsFloat] を受け付け、 内部でPointに変換される。
- property pos: Tuple[float, float, float]
座標を返す
2次元の場合は pos[0:2] を使う
- class webcface.transform.Rotation(az, ay, ax, rmat)[source]
Bases:
object
3次元の回転 (ver3.0〜)
内部ではz-y-x系のオイラー角または3x3回転行列で保持している。
送受信時にはすべてこのzyxのオイラー角に変換される。
2次元の回転を表すのにも使われ、
その場合オイラー角 rot() の最初の要素(=z軸周りの回転)を使って回転を表し、 残りの要素(x,y軸周りの回転)を0とする。
- applied_to_point(other: Point | Sequence[SupportsFloat]) Point [source]
Point を回転させた結果を返す
- Parameters:
other – 回転させる対象
- applied_to_rotation(other: Rotation) Rotation [source]
Rotation を回転させた結果を返す
- Parameters:
other – 回転させる対象
- applied_to_transform(other: Transform) Transform [source]
Transform を回転させた結果を返す
- Parameters:
other – 回転させる対象
- property rot: Tuple[float, float, float]
回転角を取得
2次元の場合は rot[0] を使う
Deprecated since version ver3.0.
- rot_axis_angle() Tuple[Tuple[float, float, float], float] [source]
回転角を軸と角度((x, y, z), angle)として取得 (ver3.0〜)
- rot_euler(axis=AxisSequence.ZYX) Tuple[float, float, float] [source]
回転角をオイラー角として取得 (ver3.0〜)
- Parameters:
axis – オイラー角の回転順序
- class webcface.transform.Transform(arg1: Point | Sequence[SupportsFloat] | Rotation, arg2: Rotation | SupportsFloat | None = None)[source]
Bases:
object
3次元の座標と回転
内部ではx, y, zの座標とz-y-x系のオイラー角で保持している。
手動でコンストラクタを呼んでもいいが、 TransformをうけとるAPIは基本的にPointとRotationのタプルを受け付け、 内部でTransformに変換される。
平行移動のみの場合は translation() を使用する。 回転のみの場合はRotationだけ渡せば直接Transformに変換される
ver3.0〜 Pointを継承せず別のクラスとしての実装に変更
- applied_to_point(other: Point | Sequence[SupportsFloat]) Point [source]
Point を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象
- applied_to_rotation(other: Rotation) Transform [source]
Rotation を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象
- Returns:
返り値はRotationではなくTransform。 applied_to_transformと同じ結果になる
- applied_to_transform(other: Transform) Transform [source]
Transform を回転+平行移動させた結果を返す
- Parameters:
other – 変換する対象対象
- property pos: Tuple[float, float, float]
座標を返す
2次元の場合は pos[0:2] を使う
- property rot: Tuple[float, float, float]
回転角を取得
2次元の場合は rot[0] を使う
Deprecated since version ver3.0.
- rot_axis_angle() Tuple[Tuple[float, float, float], float] [source]
回転角を軸と角度((x, y, z), angle)として取得 (ver3.0〜)
- rot_euler(axis=AxisSequence.ZYX) Tuple[float, float, float] [source]
回転角をオイラー角として取得 (ver3.0〜)
- Parameters:
axis – オイラー角の回転順序
- webcface.transform.convert_to_transform(origin: Point | Sequence[SupportsFloat] | Transform | Rotation | Tuple[Point | Sequence[SupportsFloat], Rotation | SupportsFloat]) Transform [source]
- webcface.transform.rot_2d(angle: SupportsFloat) Rotation [source]
2次元の回転を作成 (ver3.0〜)
rot_z() と同じ。
- Parameters:
angle – 回転角
- webcface.transform.rot_from_axis_angle(axis: Sequence[SupportsFloat], angle: SupportsFloat) Rotation [source]
軸と角度からRotationを作成
- Parameters:
axis – 軸
angle – 角度
- webcface.transform.rot_from_euler(angles: Sequence[SupportsFloat], axis=AxisSequence.ZYX) Rotation [source]
オイラー角からRotationを作成
- Parameters:
angles – オイラー角
axis – オイラー角の回転順序
- webcface.transform.rot_from_matrix(rmat: Sequence[Sequence[SupportsFloat]]) Rotation [source]
回転行列からRotationを作成
- Parameters:
rmat – 回転行列
- webcface.transform.rot_from_quat(quat: Sequence[SupportsFloat]) Rotation [source]
クォータニオンからRotationを作成
- Parameters:
quat – クォータニオン (w, x, y, z)
- webcface.transform.rot_x(angle: SupportsFloat) Rotation [source]
x軸周りの回転を作成 (ver3.0〜)
- Parameters:
angle – 回転角
- webcface.transform.rot_y(angle: SupportsFloat) Rotation [source]
y軸周りの回転を作成 (ver3.0〜)
- Parameters:
angle – 回転角