【OCCT+ImGUI系列】012-Geom2d_AxisPlacement

在这里插入图片描述

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(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值