Open CASCADE学习|拓扑变换

目录

平移变换

旋转变换

组合变换

通用变换


平移变换

TopoDS_Shape out;gp_Trsf theTransformation;gp_Vec theVectorOfTranslation(0., 0.125 / 2, 0.);theTransformation.SetTranslation(theVectorOfTranslation);BRepBuilderAPI_Transform myBRepTransformation(out, theTransformation);TopoDS_Shape TransformedShape = myBRepTransformation.Shape();

旋转变换

TopoDS_Shape out;gp_Trsf theTransformation;gp_Ax1 axez = gp_Ax1(gp_Pnt(0, 0, 0), gp_Dir(0., 0., 1.));theTransformation.SetRotation(axez, -90 * M_PI / 180);BRepBuilderAPI_Transform myBRepTransformation(out, theTransformation);TopoDS_Shape TransformedShape = myBRepTransformation.Shape();

组合变换

TopoDS_Shape out;
//平移:
gp_Trsf theTransformation1;
gp_Vec theVectorOfTranslation(0., 0.125 / 2, 0.);
theTransformation1.SetTranslation(theVectorOfTranslation);
//绕一个轴旋转:
gp_Trsf theTransformation2;
gp_Ax1 axez = gp_Ax1(gp_Pnt(0, 0, 0), gp_Dir(0., 0., 1.));
theTransformation2.SetRotation(axez, -90 * M_PI / 180);
​
gp_Trsf theTransformation3;
gp_Ax1 axex = gp_Ax1(gp_Pnt(0, 0, 0), gp_Dir(1., 0., 0.));
theTransformation3.SetRotation(axex, -50 * M_PI / 180);
​
BRepBuilderAPI_Transform myBRepTransformation(out, theTransformation3*theTransformation2* theTransformation1);
TopoDS_Shape TransformedShape = myBRepTransformation.Shape();

通用变换

TopoDS_Shape S;
Handle(gp_GTrsf) theTransformation = new gp_GTrsf();
Handle(gp_Mat) rot = new gp_Mat(1, 0, 0, 0, 0.5, 0, 0, 0, 1.5);  //描述一个三行三列的矩阵,用以替换转换的矢量部分
theTransformation->SetVectorialPart(*rot);
theTransformation->SetTranslationPart(gp_XYZ(5, 5, 5)); //使用一个给定的坐标系作为转换,即替换原图形的局部坐标系
Handle(BRepBuilderAPI_GTransform) myBRepTransformation = new BRepBuilderAPI_GTransform(S, theTransformation, false);
TopoDS_Shape S2 = myBRepTransformation->Shape(); //改变形状以及位置后的拓扑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451336.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++继承_C++回顾

什么是继承 继承是面向对象中使代码可以复用的最重要的手段,它允许在保持原有类特性的基础上进行扩展,增加功能,这样就会产生新的类,即派生类。继承呈现了面向对象的层次结构,体现了由简单到复杂的认知过程。与函数复…

MySQL运维实战(5.3) MySQL数据乱码的一些情况

作者:俊达 表数据乱码 表数据出现乱码的情况通常是由于数据的真实编码与相关参数不一致引起的,其中包括常见的参数如character_set_client、character_set_results、字段编码以及终端编码等。确保这些参数保持一致,可以有效预防和解决乱码问…

vit细粒度图像分类(十)TransFG学习笔记

1.摘要 细粒度视觉分类(FGVC)是一项非常具有挑战性的任务,它旨在从子类别中识别对象,这是由于类间固有的微妙差异。现有的大部分工作主要是通过重用骨干网络提取检测到的判别区域的特征来解决这一问题。然而,这种策略不可避免地使管道变得复…

git 如何修改仓库地址

问题背景:组内更换大部门之后,代码仓的地址也迁移了,所以原来的git仓库地址失效了。 虽然重新建一个新的文件夹,再把每个项目都git clone一遍也可以。但是有点繁琐,而且有的项目本地还有已经开发一半的代码&#xff0c…

网络原理-TCP/IP(5)

TCP协议 延迟应答 它也是基于滑动窗口,提高效率的一种机制,结合滑动窗口以及流量控制,能够以延迟应答ACK的方式,把反馈的窗口,搞大.核心在于允许范围内,让窗口尽可能大. 如果接收数据的主机立刻返回ACK应答,这时候返回的窗口可能比较小. 1.假设接收端缓冲区为1M.一次收到了5…

centos 7.6 安装cas 对接ldap 单点登录实战

centos 7.6 安装cas 对ldap 单点登录实战 1、安装前准备工作1.1、centos 7.6 安装JDK 1.81.2、centos 7 安装tomcat 9.0.841.3、windows10 安装JDK 1.81.4、windows10 安装打包工具 maven 3.9.6 2、下载cas 5.3 并打包成war包3、部署cas到tomcat4、centos 7.6 安装ldap5、cas对…

天津政采入围流程?

天津政采入围流程如下: 企业资料提交:申请企业需要提交相关的企业资料,包括企业营业执照、税务登记证、组织机构代码证等。这些资料需要提交给天津政采中心进行审核。 自营商城资料提交:申请企业需要提交自营商城的资料&#xff0…

RocketMQ问题篇01 | NameServer告警异常分析

RocketMQ问题篇01 | NameServer告警异常分析 1、问题描述2、初步分析2.1 mqcloud源代码分析2.2 NameServer源码分析2.3 NameServer源码分析2(源码出错概率太低)2.4 大流量分析 3、堆栈分析3.1 wait response on the channel3.2 connect to failed3.3 sen…

Avalonia学习(二十二)-数据库操作端

开始项目式的例子,但是不方便给大家贴代码了。 内容很多,只能演示一个界面,例子上传。 我不擅长界面美化和配色,有兴趣的可以继续完善,当前实现mysql。 最近所有样例的地址: GitHub - jinyuttt/Avalonia…

Kubernetes 1.24 serviceaccount Token问题

一. secret 官网说明 从 Kubernetes 版本 1.24 开始,不再自动创建服务帐户的机密,对于需要使用服务帐户访问 Kubernetes API 服务器的开发人员(例如,在使用管道时)来说,这可能是一个问题,连接…

FANUC机器人PROF-017从机断开故障报警处理方法总结

FANUC机器人PROF-017从机断开故障报警处理方法总结 情况说明: 机器人安装的是PROFINET板卡,按照手册进行PROFINET配置之后,重启控制柜,此时系统提示:PROF-017 从机断开, 如下图所示, 打电话咨…

【AI绘画+Midjourney平替】Fooocus:图像生成、修改软件(Controlnet原作者重新设计的UI+Windows一键部署)

代码:https://github.com/lllyasviel/Fooocus windows一键启动包下载:https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-831.7z B站视频教程:AI绘画入门神器:Fooocus | 简化SD流程&#xff0c…