Opencascade 点旋转

gp_Pnt point(1.0, 0, 0);

// 创建一个表示旋转的四元数对象
  gp_Quaternion quaternion;
  gp_Vec theAxis{0, 0.0, 1};
// point绕则Z轴旋转45度
  quaternion.SetVectorAndAngle(theAxis, 45 * M_PI / 180);
  gp_Trsf transformation;
  transformation.SetRotation(quaternion);
  point.Transform(transformation);
// 打印旋转后的点坐标
  std::cout << "Rotated Point: (" << point.X() << ", " << point.Y() << ", " << point.Z() << ")" << std::endl;

   //绕着某个点,某个方向旋转
  gp_Pnt point2(1.0, 0, 0);
  gp_Trsf transformationVec;
  //绕着点gp_Pnt(0.0, 0.0, 0.0),Z轴方向旋转
  transformationVec.SetRotation(gp_Ax1(gp_Pnt(0.0, 0.0, 0.0), gp_Dir(0, 0.0, 1.0)),
                        45 * M_PI / 180); // Rotate by 30 degrees (π/6 radians) around the X-axis
  point2.Transform(transformationVec);
// 打印旋转后的点坐标
  std::cout << "Rotated Point: (" << point2.X() << ", " << point2.Y() << ", " << point2.Z() << ")" << std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值