Metadata-Version: 2.4
Name: transform-base
Version: 0.0.2
Summary: 欧拉角、旋转矩阵、四元数、角轴及外参变换基础库，支持多种旋转顺序
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"

# transform-base

欧拉角、旋转矩阵、四元数、角轴及外参变换基础库，支持多种旋转顺序（XYZ/XZY/YXZ/YZX/ZXY/ZYX）。

## 安装

```bash
pip install transform-base
```

## 功能特性

- **角度归一化**：`normalize_angle` 将角度归一化到 [-180, 180]
- **欧拉角 ↔ 旋转矩阵**：支持 6 种旋转顺序（order），默认 ZYX
- **旋转矩阵 ↔ 四元数**：`[x, y, z, w]` 格式
- **旋转矩阵 ↔ 角轴**：Rodrigues 公式
- **外参类 ExtrinsicParam**：欧拉/旋转矩阵/四元数/角轴多种初始化，齐次矩阵、点变换、复合与逆

## 快速开始

```python
from transform_base import (
    normalize_angle,
    standard_euler_to_rotation_matrix,
    rotation_matrix_to_standard_euler,
    ExtrinsicParam,
)

# 欧拉角 -> 旋转矩阵 -> 欧拉角
euler = [10.0, 20.0, 30.0]  # roll, pitch, yaw (度)
R = standard_euler_to_rotation_matrix(*euler, order="ZYX")
euler_back = rotation_matrix_to_standard_euler(R, order="ZYX")

# 外参：欧拉角 + 平移
ext = ExtrinsicParam(euler=[0, 0, 90], translation=[1, 0, 0])
p_out = ext.transform_point([1, 0, 0])
ext_inv = ext.inverse()
```

## 依赖

- Python >= 3.10
- numpy >= 1.20

## License

MIT
