
Geom2d_AxisPlacement 教学笔记
一、类概述

Geom2d_AxisPlacement 表示二维几何空间中的一个坐标轴(轴系),由两部分组成:
gp_Pnt2d:原点(Location)gp_Dir2d:单位方向向量(Direction)
它是 Geom2d_Geometry 的派生类,可用于表示局部坐标系、图形基准轴、草图中对齐约束等。
二、构造方法
| 构造方式 | 说明 |
|---|---|
Geom2d_AxisPlacement(gp_Pnt2d P, gp_Dir2d V) |
使用原点和单位方向构造坐标轴 |
Geom2d_AxisPlacement(gp_Ax2d A) |
从 gp_Ax2d 转换构造 |
示例:
Handle(Geom2d_AxisPlacement) axis = new Geom2d_AxisPlacement(gp_Pnt2d(0,0), gp_Dir2d(1,0));
三、常用方法解析
原点与方向操作
| 方法 | 功能 |
|---|---|
SetLocation(const gp_Pnt2d& P) |
设置新原点 |
SetDirection(const gp_Dir2d& V) |
设置新方向(自动归一化) |
Location() |
获取当前原点 |
Direction() |
获取当前方向 |
方向翻转
| 方法 | 功能 |
|---|---|
Reverse() |
原地翻转方向向量 |
Reversed() |
返回一个反向的新副本(不修改原对象) |
坐标轴整体操作
| 方法 | 功能 |
|---|---|
SetAxis(const gp_Ax2d& A) |
设置完整坐标轴信息 |
Ax2d() |
返回对应的 gp_Ax2d 对象 |
Angle(const Handle<Geom2d_AxisPlacement>& Other) |
计算两个坐标轴方向夹角(单位:弧度,范围 -π 到 π) |
Copy() |
克隆自身副本 |
Transform(const gp_Trsf2d& T) |
应用 2D 仿射变换(平移、旋转、镜像等) |
四、代码片段示例
1. 设置位置

// 单独设置 X 或 Y
if (ImGui::SliderFloat("Set X", &coord[0], -100.0f, 100.0f)) {
point2d->SetX(coord[0]);
UpdatePoint(context);
}
if (ImGui::SliderFloat("Set Y", &coord[1], -100.0f, 100.0f)) {
point2d->SetY(coord[1]);
UpdatePoint(context);
}
2. 利用Transform旋转

void ApplyRotation(

最低0.47元/天 解锁文章
4938

被折叠的 条评论
为什么被折叠?



