OCC gp_Pnt创建点

OCC 创建两个点,旋转,及设置轴镜像

#include <iostream>

// 包含必要的OpenCascade库头文件

#include "gp_Pnt.hxx"  // 包含OpenCascade的点类定义
#include "gp_Ax1.hxx"  // 包含OpenCascade的轴线类定义
#include "gp_Trsf.hxx" // 包含OpenCascade的变换类定义

int main()
{
    // 创建两个坐标点 (x, y, z)
    gp_Pnt pnt1(0.0, 0.0, 0.0);
    gp_Pnt pnt2(1.0, 1.0, 1.0);

    // 打印坐标
    std::cout << "pnt1 coordinate (x, y, z) = " << pnt1.X() << ", " << pnt1.Y() << ", " << pnt1.Z() << std::endl;
    std::cout << "pnt2 coordinate (x, y, z) = " << pnt2.X() << ", " << pnt2.Y() << ", " << pnt2.Z() << std::endl;
    std::cout << "Distance between pnt1 and pnt2: " << pnt1.Distance(pnt2) << std::endl;  // 计算两点之间的距离

    // 将 pnt1 绕着 pnt2 旋转 90°
    gp_Trsf rotation;  // 创建OpenCascade的变换对象
    gp_Ax1 rotationAxis(gp_Pnt(1.0, 1.0, 0.0), gp_Dir(0.0, 0.0, 1.0));  // 创建旋转轴线

    rotation.SetRotation(rotationAxis, 3.1415926 / 2.0);  // 设置变换为绕轴旋转90度
    pnt1.Transform(rotation);  // 应用变换到点
    std::cout << "pnt1 after rotation: " << pnt1.X() << " " << pnt1.Y() << " " << pnt1.Z() << std::endl;

    // 在y轴上镜像 pnt1 创建一个新的点
    gp_Ax1 axisOfSymmetry(gp_Pnt(0.0, 0.0, 0.0), gp_Dir(0.0, 1.0, 0.0));  // 创建镜像轴线
    gp_Pnt pnt3 = pnt1.Mirrored(axisOfSymmetry);  // 使用镜像轴线镜像点
    std::cout << "pnt3 after mirroring: " << pnt3.X() << " " << pnt3.Y() << " " << pnt3.Z() << std::endl;

    return 0;
}

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值