OpenCascade绘制贝塞尔曲线

news2024/12/22 20:01:37

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛。

贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制。

一阶:

二阶:

高阶:

OpenCascade提供绘制贝塞尔曲线方法,参考代码如下:

void makeCurve(OccView* view)
{

    // Define points.
    gp_Pnt aPnt1(0.0, 0.0, 0.0);
    gp_Pnt aPnt2(5.0, 5.0, 0.0);
    gp_Pnt aPnt3(10.0, 5.0, 0.0);
    gp_Pnt aPnt4(15.0, 0.0, 0.0);

    // Add points to the curve poles array.
    TColgp_Array1OfPnt aPoles(1, 4);
    aPoles.SetValue(1, aPnt1);
    aPoles.SetValue(2, aPnt2);
    aPoles.SetValue(3, aPnt3);
    aPoles.SetValue(4, aPnt4);

   
    // Define Bezier weights.
    TColStd_Array1OfReal aBezierWeights(1, 4);
    aBezierWeights.SetValue(1, 0.5);
    aBezierWeights.SetValue(2, 1.5);
    aBezierWeights.SetValue(3, 1.5);
    aBezierWeights.SetValue(4, 0.5);

    // Create Bezier curve.
    Handle(Geom_BezierCurve) aBezierCurve = new Geom_BezierCurve(aPoles, aBezierWeights);
    Handle(AIS_ColoredShape) anAisBezierCurve = new AIS_ColoredShape(
        BRepBuilderAPI_MakeEdge(aBezierCurve).Shape());
    anAisBezierCurve->SetColor(Quantity_Color(Quantity_NOC_BLUE));



    Handle(AIS_TextLabel) aisLabel = new AIS_TextLabel();
    aisLabel->SetHeight(fontHeight);
    aisLabel->SetText("Bezier edge");
    aisLabel->SetPosition(aPnt3);
    aisLabel->SetColor(Quantity_Color(Quantity_NOC_BLUE));
    myObject3d.Append(aisLabel);
}

在《OpenCascade插件化三维算法研究平台》上效果展示如下:

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

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

相关文章

雷士、书客、小米的护眼台灯谁的性价比最高?三款护眼台灯真实测评

护眼台灯怎么选一直是许多家长为孩子选台灯时的一个大难题,主要因为市场上的台灯种类太多,而且这些产品中混杂了许多不专业品牌,甚至包括许多劣质台灯和网红品牌!同时也经常能够看到报道很多“抽检不合格”的情况发生,…

S08-如何冻结表格行与列

通常表格第一行或第一列的数据都是数据归类的标题 所以比较常用到的是冻结首行首列 具体操作是点击菜单栏的“开始”-“冻结窗格”“冻结首行”

图像语义分割 FCN图像分割网络网络详解

图像语义分割 FCN图像分割网络网络详解 0、介绍1、VGG16网络结构2、转置卷积3、FCN-32S、FCN-16S,FCN-8S网络结构4、损失函数5、膨胀卷积6、FCN(Backbone-ResNet-50)6.1 项目框架6.2 ResNet50网络结构6.3 FCN(Backbone-ResNet-50)网络结构6.4 FCN(Backbone-ResNet-5…

关于接口测试——自动化框架的设计与实现

一、自动化测试框架 在大部分测试人员眼中只要沾上“框架”,就感觉非常神秘,非常遥远。大家之所以觉得复杂,是因为落地运用起来很复杂;每个公司,每个业务及产品线的业务流程都不一样,所以就导致了“自动化…

LVS和keepalived

Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器&#x…

怎么自制gif动画?简单一招快速搞定

众所周知gif动图的画面非常的丰富生动,并且体积小传播方便,在当下的网络中是非常的受欢迎。那么,这种gif格式的图片是怎么制作的呢?下面,给大家分享一款专业的gif动态图片制作(https://www.gif.cn/&#xf…

Ubuntu 安装PostgreSQL

网上有各种版本的,也可以去官网看官方的文档。我是下载的PostgreSQL-11.4版本的。找到以后直接复制网上的压缩包链接就可以。 $ mkdir /opt/postgresql && cd /opt/postgresql $ wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz…

如何计算3种卷积之后的尺寸(普通卷积,转置卷积,空洞卷积)

文章目录 前言一、普通卷积二、转置卷积三、空洞卷积 前言 三种卷积之后的feature map的尺寸如何计算。包括普通卷积,转置卷积,空洞卷积。可以在下面这个链接看到三种卷积的动态图。 卷积动态图 一、普通卷积 普通卷积比较简单了,其计算方式…

由于找不到msvcr110.dll 无法继续执行的解决方法分享(最新)

msvcp110.dll 是 Microsoft Visual C 2010 Redistributable Package 中的一个组件,它包含了一些运行时库文件。当计算机缺少这个文件时,可能会出现一些问题,如程序无法正常运行、系统不稳定等。下面是 6 种修复方法: 第1种方法&am…

内网穿透的应用-结合内网穿透实现在线远程Linux DataEase,数据可实时进行可视化分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

华为小型智能园区网络解决方案

云时代来袭,数字化正在从园区办公延伸到生产和运营的方方面面,智慧校园,柔性制造,掌上金融和电子政务等,面对各种各样的新兴业态的涌现,企业需要构建一张无所不联、随心体验、业务永续的全无线网络&#xf…

数据采集技术在MES管理系统中的应用及效果

在现代制造业中,MES生产管理系统已成为生产过程中不可或缺的一部分。MES管理系统能够有效地将生产计划、生产执行、质量管理等各个生产环节有机地衔接起来,从而实现生产过程的全面优化。本文将以某车间为例,探讨结合MES系统的数据采集技术的应…

10.正则表达式匹配

10.正则表达式匹配 上述5种可匹配情况的举例,便于理解: 1、a与ab星号是匹配的,分析:a与a匹配,让 b星号看作出现0次。 2、abb与ab*匹配,分析:ab与ab星号匹配,让b多出现1次时&#xff…

Windows10关闭小娜最好方法是什么?

Windows10关闭小娜最好方法是什么?Windows10系统内的小娜可以帮助大家实现各种操作和提供一系列的便捷功能。但是,有些用户并不需要小娜的帮助,所以想要关闭小娜功能,下面小编给大家介绍关闭Windows10系统内小娜的最好方法&#x…

一次对app使用socket通信的渗透思路记录

0x1 概述 ​ 本篇文章记叙了一次测试的目标为app,且该app采用了socket进行通信时,一个非常便秘的渗透测试思路。 0x2 app分析 ​ 首先拿到app,对其使用VPN代理抓包、WIFI代理抓包均未果,于是决定脱壳看看,使用MT管理…

【VsCode】vscode创建文件夹有小图标显示和配置

效果 步骤 刚安装软件后, 开始工作目录下是没有小图标显示的。 如下图操作,安装vscode-icons 插件,重新加载即可 创建文件夹,显示图标如下:

小白的二叉树(C语言实现)

前言: 二叉树属于数据结构的一个重要组成部分,很多小白可能被其复杂的外表所吓退,但我要告诉你的是“世上无难事,只怕有心人”,我将认真的对待这篇博客,我相信只要大家敢于思考,肯定会有所收获…

040:vue项目中 transition 动画实现推拉门效果

第040个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

Embeddig技术与应用 (1) :Embedding技术发展概述及Word2Vec

编者按:嵌入(Embedding)是机器学习中一种将高维稀疏向量转换为低维稠密向量的技术。其通常用于处理自然语言、图像等高维离散数据。 嵌入能够有效地解决维度灾难问题,减少存储和计算成本,同时提高模型的表达能力。我们还可以通过得到的嵌入向…

华为云云耀云服务器L实例评测|在Redis的Docker容器中安装BloomFilter 在Spring中使用Redis插件版的布隆过滤器

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍如何在Redis的docker容器中安装BloomFilter,并且结合spring的使用方式。 其他相关的华为云…