几何建模基础-样条曲线和样条曲面介绍

news2024/12/25 11:31:53

1.概念介绍

1.1 样条曲线的来源

样条的英语单词spline来源于可变形的样条工具,那是一种在造船和工程制图时用来画出光滑形状的工具:富有弹性的均匀细木条/金属条/有机玻璃条,它围绕着按指定位置放置的重物或者压铁做弹性弯曲,以获得所需要的曲线,如下图所示。在计算机科学的计算机辅助设计和计算机图形学中,样条通常是指分段定义的多项式参数曲线

1.2 非均匀的含义

节点矢量分布不是均匀/准均匀的

1.3 节点重复度

样条曲线按节点矢量中节点的分布情况不同。可以划分为四种类型(假设曲线的次数为k,即:degree = k)。注意所有的节点矢量都应该满足:节点序列非递减

1.4 有理的含义

指的是NURBS曲线是用有理多项式形式表达式来定义有理函数是通过多项式的加减乘除得到的函数。在数学中,理性函数是可以由有理分数定义的任何函数,即代数分数,使得分子和分母都是多项式。

2.样条函数分类

2.1 均匀B样条曲线

节点矢量中节点沿参数方向均匀等距分布且重复度均为1,所有节点区间长度

  2.2 准均匀B样条曲线

其节点矢量中端节点具有重复度k+1,所有内节点均匀分布且重复度均为1。

就定义了一个二次(k=2)准均匀B样基函数。

    2.3 分段Bézier曲线

   2.4 非均匀B样条曲线

对于端节点重复度为k+1的曲线,必定插值于控制多边形的首尾控制顶点。GGP中的NURBS曲线都是该类型的曲线。

2.5 Bézier曲线

一条n次的Bézier曲线可以表示为:

将Bézier曲线方程展开:

当参数u从0变化到1,则得到如下所示的曲线。并且可以看出,Bézier曲线上的一点和所有控制顶点都有关系,移动任何一个控制顶点都会使曲线发生变化。这一点和之后讲的B样条曲线和NURBS曲线不同,这两者具有局部修改性,即:修改任意一个控制顶点,只会影响与该控制顶点相关部分的曲线形状。

2.6 有理Bézier曲线

为什么要用有理曲线:

尽管多项式曲线具有很多优点,但是又很多重要的曲线:如圆/椭圆/双曲线(二次曲线)无法精确地用多项式表示。所有二次曲线均可以用有理函数(即两个多项式相除)表示。为了统一表达,需要引入有理表示。

n次有理Bézier曲线的定义为:

2.7 B样条曲线

为什么要使用分段多项式参数曲线

B样条基函数定义:

是有理基函数。它和B样条基函数有相似的性质(参考B样条基函数的性质)。同样,NURBS曲线和B样条曲线有相似的性质(参考B样条曲线的性质)。

B样条基函数有多种定义方式,这里给出德布尔(de Boor)和考克斯(Cox)的递推定义公式。B样条基函数是定义在被称为节点矢量的非递减参数序列上的函数。

B样条曲线:

p次B样条曲线的定义为:

2.8 非均匀有理B样条曲线(NURBS)

一条p次NURBS曲线定义为:

NURBS曲线/B样条曲线/Bézier曲线的关系

如果NURBS曲线中所有权因子均为1,那么这条NURBS退化为B样条曲线。如果B样条曲线只有一段,并且节点矢量(只有一段,只存在两个不同的节点值)均为p+1重。那么这条B样条曲线就是Bézier曲线。

3.样条曲面

3.1 张量积曲面

曲线C(u)是单参数的矢量函数(一元函数),它是直线段到三维空间的映射。曲面是关于两个参数uv的矢量函数(二元函数)。它表示由uv平面上的二维区域R到三维空间的映射。因此曲面可以表示为S(u,v) = ((x(u,v), y(u,v), z(u,v)),uv属于R。有多种表示曲面的形式,在几何造型中应用最广泛的是张量积曲面。

张量积的方法基本上是在两个方向上均采用曲线的处理方式,它也采用基函数和对应几何系数(控制顶点)的乘积的累加和的形式表示曲面。曲面的基函数是u,v的二元函数,它是由关于u的一元基函数和关于v的一元基函数的乘积来构造。几何系数(在拓扑上)被安排为两个方向的n*m的网格。因此张量积曲面具有如下形式:

3.2 B样条曲面

B样条曲面由两个方向上的控制网格、两个节点矢量和两个单变量的B样条基函数的乘积来定义:

3.3 NURBS曲面

一张在u方向为p次,在v方向为q次的NURBS曲面可以表示为:

 

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

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

相关文章

SAPUI5基础知识12 - 应用程序描述符(manifest.json)

1. 背景 在SAPUI5中,manifest.json是一个配置文件,它包含了应用程序的所有配置信息。这个文件是SAPUI5应用程序的核心,它定义了应用程序的元数据,包括应用程序的名称、描述、版本、模型、路由等信息。 manifest.json的主要功能和…

如何使用Vue3创建在线三维模型展示?

本文由ScriptEcho平台提供技术支持 项目地址:传送门 代码相关的技术博客 代码应用场景介绍 本段代码使用 RoughJS 库在 HTML5 Canvas 上创建了手绘风格的图像,展示了 RoughJS 库的强大功能,可用于创建具有有机手绘外观的图形。 代码基本…

2024已过半,还没试过在vue3中使用ioc容器吗?

Vue3 已经非常强大和灵活了,为什么还要引入 IOC 容器呢?IOC 容器离不开 Class,那么我们就从 Class 谈起 Class的应用场景 一提起 Class,大家一定会想到这是 Vue 官方不再推荐的代码范式。其实,更确切的说&#xff0c…

基于Java+SpringMvc+Vue技术的实验室管理系统设计与实现

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

二次元转向SLG,B站游戏的破圈之困

文 | 螳螂观察 作者 | 夏至 2023年是B站游戏的滑铁卢,尽管这年B站的游戏营收还有40多亿,但相比去年大幅下降了20%,整整少了10亿,这是过去5年来的最大跌幅,也是陈睿接管B站游戏业务一年以来,在鼻子上碰的第…

[每周一更]-(第104期):Go中使用Makefile的经验

文章目录 1. 项目结构2. Makefile的基础知识什么是 Makefile 3. Go项目的Makefile示例4. 详细解释每个Makefile目标5. 使用Makefile执行常见任务 在Go项目中,使用Makefile可以简化和自动化常见的开发和部署任务,如编译、测试、格式化和清理。深入认识及实…

opencv 鱼眼图像的矫正(动态参数调整)

一:棋盘校准参数说明(内参) 棋盘校准的方法及代码很多,参见其他连接 1:内参矩阵 2:畸变系数 针对鱼眼相机此处是4个参数,在其校准代码中也可以知道,其通常的定义如下: data.camera_mat np.e…

Jenkins 强制杀job

有时候有的jenkins job运行时间太长,在jenkins界面点击x按钮进行abort,会失败: 这时候点击: “Click here to forcibly terminate running steps” 会进一步kill 任务,但是也还是有杀不掉的可能性。 终极武器是jenkin…

降Compose十八掌之『飞龙在天』| Layout

公众号「稀有猿诉」 原文链接 降Compose十八掌之『飞龙在天』| Layout 页面布局是GUI应用开发的核心,决定着一个UI具体如何实现。今天将延着路线图来练习『降Compose十八掌』的第二招式,学习一下如何使用Compose中的布局来构建页面。 基础骨架 基…

成长过程,摔倒不要紧,爬起来、改过、前进

无论何时何地,我们都有重头再来的能力,这份生生不息的力量来自天之灵根; 学习过程会有跌倒,这是很正常的节奏次序,不能掩盖自己的过失、自欺欺人,这不是过失,摔倒了就拍拍身上的灰尘&#xff…

3 个令人惊艳的 AI 开源工具,诞生了!

大家好,今天继续聊聊 AI 科技圈发生的那些事。分享几个最新好玩、实用的AI工具。更多最新技术,文末加入我们。 LivePortrait LivePortrait:一款可以轻松让一幅肖像栩栩如生的工具 它可以精准操控眼睛和嘴唇动作: 让静态照片变为…

关于在自行封装的组件库中(使用vue-class-component)使用Vue-i18n无法正常翻译的解决办法

文章目录 介绍背景现象1解决办法 现象2原因分析解决办法 最终方案 介绍 大家或多或少都用过别人封装的组件库,甚至有人或者公司内有自行封装的一些公用组件库,而国际化翻译现在已经是各大项目中必不可少的一个插件了,但组件库中使用 i18n 进…

AI视频创作一条龙!达摩院“寻光”平台炸场WAIC,突破可控编辑难题

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践,基于大语言模型和RAG技术,集合海量工业领域生态资源方优质产品和知识服务,旨在通过智能搜索、连续交互,实时生成个性化的内容…

基于Java+SpringMvc+Vue技术的实验室管理系统设计与实现(6000字以上论文参考)

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

正态、威布尔、指数分布、伽马分布、对数正态分布介绍

目录 正态、威布尔、指数分布、3.1 概念介绍概率密度函数(PDF)累积分布函数(CDF)性质应用 3.2 参数及绘图参数概率密度函数(PDF)累积分布函数(CDF)绘图图像解读 3.3 指数分布拟合代码…

Java面经知识点汇总版

Java面经知识点汇总版 算法 14. 最长公共前缀(写出来即可) Java 计算机基础 数据库 基础 SQL SELECT first_name, last_name, salary FROM employees WHERE department Sales AND salary > (SELECT AVG(salary)FROM employeesWHERE department Sal…

阶段三:项目开发---大数据开发运行环境搭建:任务6:安装配置HBase

任务描述 知识点:安装配置HBase 重 点: 安装配置HBase 难 点:无 内 容: 本阶段任务是安装配置HBase,实时飞行数据是保存在HBase中的,因为HBase具有高效的读写能力,在当前项目中我们是…

网络资源模板--Android Studio 外卖点餐App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 原创外卖点餐:基于Android studio 实现外卖(点)订餐系统 非原创奶茶点餐:网络资源模板--基于 Android Studio 实现的奶茶点餐App报告 一、项目演示 网络资源模板--基于Android …

通义千问Qwen-VL-Chat大模型本地部署(一)

目录 前言 环境准备 软件安装 其它库安装启动项目 FASTAPI 小结 前言 人工智能大模型是一种能够利用大数据和神经网络来模拟人类思维和创造力的人工智能算法。它利用海量的数据和深度学习技术来理解、生成和预测新内容,通常情况下有数十亿乃至数百亿个参数&#xf…

关于Web开发的详细介绍

目录 一、什么是Web? 二、Web网站的工作流程和开发模式 (1)简单介绍 (2)工作流程 1、第一步 2、第二步 (3)Web网站的开发模式 1、前后端分离开发模式 ​编辑2、混合开发模式 三、开发W…