Open CASCADE学习|直纹曲面(ruled surface)

直纹曲面是一类特殊的曲面,在几何学和微分几何中都有研究。它的主要特性是,曲面上的每一点都有至少一条直线经过。换句话说,直纹曲面可以由一条直线通过连续运动构成。在三维欧几里德空间中,最常见的直纹曲面是平面、柱面和锥面,著名的莫比乌斯环也是直纹曲面。

直纹曲面在几何学和微分几何中有许多重要的应用和研究。由于它们具有很好的性质,因此在微分几何曲面论中占据十分重要的地位。对直纹曲面性质的研究已经取得了很多理想且有价值的成果。例如,活动标架法与外微分法相结合是研究微分几何学的有力工具,也被广泛应用于直纹曲面的研究中。

#include <TColgp_HArray1OfPnt.hxx>
#include <gp_Pnt.hxx>
#include <GeomAPI_Interpolate.hxx>
#include <BRepBuilderAPI_MakeWire.hxx>
#include <GeomFill.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
#include"Viewer.h"
#include <BRepBuilderAPI_MakeFace.hxx>
​
int main(int argc, char* argv[])
{//生成第一个曲线TColgp_HArray1OfPnt Linearray1 = TColgp_HArray1OfPnt(1, 5);Linearray1.SetValue(1, gp_Pnt(5, 0, 0));Linearray1.SetValue(2, gp_Pnt(4, 1.5, 0));Linearray1.SetValue(3, gp_Pnt(3, 2, 0));Linearray1.SetValue(4, gp_Pnt(2, 3, 0));Linearray1.SetValue(5, gp_Pnt(0, 4.5, 0));GeomAPI_Interpolate bspline_11 = GeomAPI_Interpolate(&Linearray1, Standard_False, 0.00001);bspline_11.Perform();Handle(Geom_BSplineCurve) bspline_21 = bspline_11.Curve();TopoDS_Edge bspline_31 = BRepBuilderAPI_MakeEdge(bspline_21);TopoDS_Shape bspline1 = BRepBuilderAPI_MakeWire(bspline_31);//生成第二个曲线TColgp_HArray1OfPnt Linearray2 = TColgp_HArray1OfPnt(1, 5);Linearray2.SetValue(1, gp_Pnt(8, 0, 5));Linearray2.SetValue(2, gp_Pnt(7, 1.7, 5));Linearray2.SetValue(3, gp_Pnt(6, 2.4, 5));Linearray2.SetValue(4, gp_Pnt(3, 3.2, 5));Linearray2.SetValue(5, gp_Pnt(1, 5, 5));GeomAPI_Interpolate bspline_12 = GeomAPI_Interpolate(&Linearray2, Standard_False, 0.00001);bspline_12.Perform();Handle(Geom_BSplineCurve) bspline_22 = bspline_12.Curve();TopoDS_Edge bspline_32 = BRepBuilderAPI_MakeEdge(bspline_22);TopoDS_Shape bspline2 = BRepBuilderAPI_MakeWire(bspline_32);//二个曲线生成曲面Handle(Geom_Surface) surface = GeomFill::Surface(bspline_21, bspline_22);TopoDS_Shape surf=BRepBuilderAPI_MakeFace(surface,0.001);Viewer vout(50, 50, 500, 500);vout << bspline1;vout << bspline2;vout << surf;vout.StartMessageLoop();return 0;
}

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

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

相关文章

【镜头知识】对焦和变焦

前言 变焦 调整某几个镜片的相对位置&#xff0c;从而改变镜片组的焦距&#xff0c;进而改变图像的视场角度。 焦距和视角以及拍摄距离的关系这张图能更好的体现&#xff1a; 视角越窄&#xff0c;也意味着放大的倍数越大&#xff01; 对焦 物体反射的光线&#xff0c;有很多不…

每日五道java面试题之java基础篇(十一)

目录: 第一题. Java死锁如何避免&#xff1f;第二题. 为什么⽤线程池&#xff1f;解释下线程池参数&#xff1f;第三题. 线程池的底层⼯作原理第四题. ReentrantLock中tryLock()和lock()⽅法的区别第五题. Sychronized和ReentrantLock的区别? 第一题. Java死锁如何避免&#x…

【JavaEE】_HTTP请求报头header

目录 1. Host 2. Content-Length与Content-Type 2.1 Content-Length 2.2 Content-Type 3. User-Agent&#xff08;UA&#xff09; 4. Referer 5. Cookie header的整体格式是“键值对”结构&#xff0c;一行是一个键值对&#xff0c;这些键值对都是HTTP定义好的、有特殊含…

【排序算法】八大排序算法(C语言实现)

目录 一、直接插入排序二、希尔排序三、选择排序四、堆排序五、冒泡排序六、快速排序 递归实现 Hoare版本挖坑法前后指针法 非递归实现 Hoare版本挖坑法前后指针法 快速排序的两个优化 三数取中小区间优化 七、归并排序 递归实现非递归实现外排序 八、计数排序 本次内容大纲&a…

数据库第四次实验

目录 1.建立数据表并插入数据 2 视图的创建 2.1 行列子集视图的创建 2.2 多表视图 2.3视图上建立视图 2.4分组视图 2.5带表达式的视图 3 删除视图 ​​​​​​​​​​​​​​4 查询视图 ​​​​​​​5 更新视图 5.1 修改某一个属性 5.2 删除一条数据 5.3 插入…

【JavaEE】_HTTP请求首行

目录 1. URL 2. 方法 2.1 GET方法 2.2 POST方法 2.3 GET与POST的区别 2.4 低频使用方法 1. URL 在mysql JDBC中已经提到过URL的相关概念&#xff1a; 如需查看有关JDBC更多内容&#xff0c;原文链接如下&#xff1a; 【MySQL】_JDBC编程-CSDN博客 URL用于描述某个资源…

阅读笔记(SOFT COMPUTING 2018)Seam elimination based on Curvelet for image stitching

参考文献&#xff1a; Wang Z, Yang Z. Seam elimination based on Curvelet for image stitching[J]. Soft Computing, 2018: 1-16. 注&#xff1a;SOFT COMPUTING 大类学科小类学科Top期刊综述期刊工程技术 3区 COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE 计算机&#xf…

leetcode135. 分发糖果

leetcode135. 分发糖果 题目 思路 两者兼顾很容易顾此失彼&#xff0c;因此分别考虑两方向&#xff0c;初始化为全1数组从前向后遍历&#xff1a;只要右边评分比左边大&#xff0c;result[i] result[i-1] 1从后向前遍历&#xff1a;只要左边评分比右边大&#xff0c;result…

shell脚本之高级变量

目录 一、高级变量赋值 1、高级变量赋值总结表 2、相关操作 二、变量间接引用 1、eval命令 一、高级变量赋值 1、高级变量赋值总结表 变量配置方式str 无配置str 为空字符串str 已配置为非空字符串var${str-expr}varexprvarvar$strvar${str:-expr}varexprvarexprvar$str…

第13章 网络 Page744~746 asio核心类 ip::tcp::endPoint

2. ip::tcp::endpoint ip::tcp::socket用于连接TCP服务端的 async_connect()方法的第一个入参是const endpoint_type& peer_endpoint. 此处的类型 endpoint_type 是 ip::tcp::endpoint 在 在 ip::tcp::socket 类内部的一个别名。 libucurl 库采用字符串URL表达目标的地…

FPGA中的模块调用与例化

目录 一、模块调用与实例化 1.1 模块调用 1.2 模块实例化 1.3 Verilog例化语句及其用法 1.3.1 例化语句的基本格式 1.3.2 实例化三种不同的连接方法 二、模块调用实例-全加器与半加器 2.1 半加器模块 2.2 全加器模块 三、参数定义关键词与整数型寄存器 3.1 参数定义关…

操作系统原理与实验——实验一队列

实验指南 运行环境&#xff1a; Dev c 算法思想&#xff1a; 队列顺序存储用链表来表示&#xff0c;用front指针表示队首&#xff0c;用rear指针表示队尾&#xff0c;实现队列的几个基本的操作。 核心数据结构&#xff1a; typedef int datatype; typedef struct { datatype a…