Open CASCADE学习|创建多段线与圆

news2024/9/24 15:20:46

使用Open CASCADE Technology (OCCT)库来创建和显示一些2D几何形状。

主要过程如下:

包含头文件:代码首先包含了一些必要的头文件,这些头文件提供了创建和显示几何形状所需的类和函数。

定义变量:在main函数中,定义了一些变量来表示圆的半径、直径、螺旋部分的高度、旋转的总角度等。

创建矩形:使用BRepBuilderAPI_MakePolygon类来创建一个矩形。矩形的顶点坐标被添加到rectangle1中。

创建圆:使用Geom2d_Circle类创建两个2D圆。这些圆在XY平面上,并且中心在原点。第一个圆的半径为R,第二个圆的半径为Rr。使用BRepBuilderAPI_MakeEdge2d类将上述的两个2D圆转换为2D边(TopoDS_Edge)。

显示形状:创建了一个Viewer对象vout,该对象用于显示几何形状。使用vout << rectangle1;、vout << circle1;和vout << circle2;将矩形和两个圆添加到视图中。使用vout.StartMessageLoop();启动消息循环,以便用户可以与显示的形状进行交互。

#include <AIS_Shape.hxx>
#include <V3d_View.hxx>
#include <V3d_Viewer.hxx>
#include <AIS_InteractiveContext.hxx>
#include <V3d_View.hxx>
#include "Viewer.h"
​
​
#include <TopoDS.hxx>
#include <BRepBuilderAPI_MakePolygon.hxx>
#include <Geom2d_Circle.hxx>
#include <BRepBuilderAPI_MakeEdge2d.hxx>
#include <Geom_Plane.hxx>
​
​
int main(int argc, char** argv)
{
  Standard_Real R = 4.;//outer radius
  Standard_Real D = 2 * R;//diameter
  Standard_Real Rr = 3.5;//outer radius minus body clearance
  Standard_Real b = 1.;//web thickness
  Standard_Real d = b / 2;//
  Standard_Real H = 80.;//height of the spiral part
  Standard_Real a = 3. * M_PI;//total angle of spiral rotation
  Standard_Real sigma = 118;//point angel in degrees
​
  BRepBuilderAPI_MakePolygon rectangle1;
  rectangle1.Add(gp_Pnt(d, -R, 0));
  rectangle1.Add(gp_Pnt(R, -R, 0));
  rectangle1.Add(gp_Pnt(-d, R, 0));
  rectangle1.Add(gp_Pnt(-R, R, 0));
  rectangle1.Add(gp_Pnt(d, -R, 0));
  Handle(Geom2d_Circle) c1=new Geom2d_Circle(gp_Ax22d(gp_Pnt2d(0, 0), gp_Dir2d(0,1)), R);
  TopoDS_Edge circle1 = BRepBuilderAPI_MakeEdge2d(c1);
  Handle(Geom2d_Circle) c2 = new Geom2d_Circle(gp_Ax22d(gp_Pnt2d(0, 0), gp_Dir2d(0, 1)), Rr);
  TopoDS_Edge circle2 = BRepBuilderAPI_MakeEdge2d(c2);
  Viewer vout(50, 50, 500, 500);
  vout << rectangle1;
  vout << circle1;
  vout << circle2;
  vout.StartMessageLoop();
  return 0;
​
}
​

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何查看端口映射?

端口映射是一种用于实现远程访问的技术。通过将外网端口与内网设备的特定端口关联起来&#xff0c;可以使外部网络用户能够通过互联网访问内部网络中的设备和服务。在网络中使用端口映射可以解决远程连接需求&#xff0c;使用户能够远程访问设备或服务&#xff0c;无论是在同一…

JAVA生产使用登录校验模式

背景 目前我们的服务在用户登录时&#xff0c;会先通过登录接口进行密码校验。一旦验证成功&#xff0c;后端会利用UUID生成一个独特的令牌&#xff08;token&#xff09;&#xff0c;并将其存储在Redis缓存中。同时&#xff0c;前端也会将该令牌保存在本地。在后续的接口请求…

常用对象和常用成员函数

常量对象与常量成员函数来防止修改对象&#xff0c;实现最低权限原则。 在Obj被定义为常量对象的情况下&#xff0c;下面这条语句是错误的。 错误的原因是常量对象一旦初始化后&#xff0c;其值就再也不能改变。因此&#xff0c;不能通过常量对象调用普通成员函数&#xff0c;因…

海外云手机的核心优势

随着5G时代的到来&#xff0c;云计算产业正处于高速发展的时期&#xff0c;为海外云手机的问世创造了一个可信任的背景。在资源有限且需求不断增加的时代&#xff0c;将硬件设备集中在云端&#xff0c;降低个人用户的硬件消耗&#xff0c;同时提升性能&#xff0c;这一点单单就…

得物自研API网关实践之路

一、业务背景 老网关使用 Spring Cloud Gateway &#xff08;下称SCG&#xff09;技术框架搭建&#xff0c;SCG基于webflux 编程范式&#xff0c;webflux是一种响应式编程理念&#xff0c;响应式编程对于提升系统吞吐率和性能有很大帮助; webflux 的底层构建在netty之上性能表…

广度优先搜索(BFS)

力扣刷题之旅&#xff1a;进阶篇&#xff08;二&#xff09; 继续我的力扣刷题之旅&#xff0c;我在进阶篇的第一部分中深入探索了BFS&#xff08;广度优先搜索&#xff09;算法&#xff0c;并感受到了它在图形搜索中的强大威力。现在&#xff0c;我进入了进阶篇的第二部分&am…

百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)

0x01 产品简介 百卓Smart管理平台是北京百卓网络技术有限公司(以下简称百卓网络)的一款安全网关产品,是一家致力于构建下一代安全互联网的高科技企业。 0x02 漏洞概述 百卓Smart管理平台 uploadfile.php 接口存在任意文件上传漏洞。未经身份验证的攻击者可以利用此漏洞上传…

单片机无线发射的原理剖析

目录 一、EV1527编码格式 二、OOK&ASK的简单了解 三、433MHZ 四、单片机的地址ID 五、基于STC15W104单片机实现无线通信 无线发射主要运用到了三个知识点&#xff1a;EV1527格式&#xff1b;OOk&#xff1b;433MHZ。下面我们来分别阐述&#xff1a; EV1527是数据的编…

Stable Diffusion 模型下载:Samaritan 3d Cartoon SDXL(撒玛利亚人 3d 卡通 SDXL)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 由“PromptSharingSamaritan”创作的撒玛利亚人 3d 卡通类型的大模型&#xff0c;该模型的基础模型为 SDXL 1.0。 条目内容类型大模型基础模型SDXL 1.0来源CIVITA…

IDEA创建Java类时自动添加注释(作者、年份、月份)

目录 IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09;如图&#xff1a; IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09; 简单记录下&#xff0c;IDEA创建Java类时自动添加注释&#xff08;作者、年份、月份&#xff09;&#…

@PostMapping/ @GetMapping等请求格式

目录 1.只传一个参数的 第一种 第二种 第三种:表单 2.传整个对象的 2.1修改实体类就是传整个对象过来 2.2新增实体类就是传整个对象过来新增 1.只传一个参数的 第一种 PostMapping("/add/{newsId}")public Result addOne(PathVariable Integer newsId) {}pos…

Spring + Tomcat项目中nacos配置中文乱码问题解决

实际工作的时候碰到了nacos中文乱码的问题&#xff0c;一顿排查最终还是调源码解决了。下面为具体的源码流程&#xff0c;有碰到的可以参考下。 对于nacos配置来说&#xff0c;初始主要源码就在NacosConfigService类中。里面有初始化获取配置content以及设置对应监听器的操作。…

windows中的apache改成手动启动的操作步骤

使用cmd解决安装之后开机自启的问题 services.msc 0. 这个命令是打开本地服务找到apache的服务名称 2 .通过服务名称去查看服务的状态 sc query apacheapache3.附加上关掉和启动的命令&#xff08;换成是你的服务名称&#xff09; 关掉命令 sc stop apacheapache启动命令 …

金融行业专题|证券超融合架构转型与场景探索合集(2023版)

更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中&#xff0c;传统架…

使用Python语言生成区块链地址

# 单次运行 import binascii import sha3 from ecdsa import SigningKey, SECP256k1priv SigningKey.generate(curveSECP256k1) # 生成私钥 pub priv.get_verifying_key() # 生成公钥keccak sha3.keccak_256() keccak.update(pub.to_string()) # keccak_256哈希运算 addr…

STM32学习笔记——定时器

目录 一、定时器功能概述 1、基本定时器&#xff08;TIM6&TIM7&#xff09; 工作原理 时序 2、通用计时器&#xff08;TIM2&TIM3&TIM4&TIM5&#xff09; 时钟源 外部时钟源模式1&2 外部时钟源模式2 外部时钟源模式1 定时器的主模式输出 输入捕获…

春节回家坐飞机后助听器就不好用了?如何过安检、拖运?

春节即将来临&#xff0c;很多人都要乘坐飞机回家或者出游。如果你是一位助听器使用者&#xff0c;你可能会有一些疑问&#xff1a;坐飞机能戴助听器吗&#xff1f;助听器会不会受到安检设备的影响&#xff1f;直接将助听器放在传送带上可以吗&#xff1f;……别担心&#xff0…

前端JavaScript篇之addEventListener()方法的参数和使用

目录 addEventListener()方法的参数和使用参数和使用typelisteneroptionsuseCapturewantsUntrusted addEventListener()方法的参数和使用 addEventListener() 是 JavaScript 中用于向指定元素添加事件监听器的方法。这个方法通常用于处理用户交互&#xff0c;比如点击、鼠标悬…

springboot163美食推荐商城的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

日历功能——C语言

实现日历功能&#xff0c;输入年份月份&#xff0c;输出日历 #include<stdio.h>int leap_year(int year) {if(year % 4 0 && year % 100 ! 0 || year % 400 0){return 1;}else{return 0;} }int determine_year_month_day(int *day,int month,int year) {if(mo…