计算机辅助几何设计:曲线曲面基础知识

参数化表示

空间曲线曲面常用参数化表示,即: x = x ( u ) , y = y ( u ) , z = z ( u ) x=x(u),y=y(u),z=z(u) x=x(u),y=y(u),z=z(u)。用位置矢量形式表示就是 p = p ( u ) p=p(u) p=p(u),其中参数u可能有意义,也可能没有意义,例如对于 p = [ c o s θ , s i n θ ] p = [cos\theta, sin\theta] p=[cosθ,sinθ]中的 θ \theta θ有意义, x = a 0 + a 1 u + a 2 u 2 x=a_0+a_1u+a_2u^2 x=a0+a1u+a2u2中的u就没有意义。
同一曲线可以有多种不同参数化表示,区别在于曲线上的点和参数域的点对应关系不同。例如 p = u p 1 + ( 1 − u ) p 0 p=up_1+(1-u)p_0 p=up1+(1u)p0 p = u 3 p 1 + ( 1 − u 3 ) p 0 p=u^3p_1+(1-u^3)p_0 p=u3p1+(1u3)p0,曲线是一样的,对参数域u同样划分为100等分,但是画出来密度是不一样的:
在这里插入图片描述
在这里插入图片描述
位置矢量对参数u求导,得到的导数向量称为导矢 p ˙ = [ d x d u , d y d u , d z d u ] \dot{p}=[\frac{dx}{du},\frac{dy}{du},\frac{dz}{du}] p˙=[dudx,dudy,dudz]。如果对一个曲线进行参数化,参数域内一阶导矢处处不为零,称为正则曲线。

注意,向量的一阶导矢是曲线的切线方向,向量的各阶导矢方向不一定相同。如果向量在某处一阶导矢为0,那么它的切线方向由最低阶不为零导矢方向确定

设曲线弧长微分为 d s ds ds,则弧长微分计算:
d s = d p 2 = d x 2 + d y 2 + d z 2 = d p d u 2 d u = ∣ p ( u ) ˙ ∣ d u \begin{aligned} ds & = \sqrt{dp^2} = \sqrt{dx^2+dy^2+dz^2}\\ & = \sqrt{\frac{dp}{du}^2}du = |\dot{p(u)}|du \end{aligned} ds=dp2 =dx2+dy2+dz2 =dudp2 du=p(u)˙du

根据上面ds的计算方法可以得知,位置矢量对曲线弧长求导,得到的一阶导矢,是单位矢量。
对于单位矢量 ∣ α ∣ = 1 |\alpha|=1 α=1,则求导得 α α ′ = 0 \alpha \alpha^{\prime}=0 αα=0,所以单位矢量的导数 β = α ′ ∣ α ′ ∣ \beta=\frac{\alpha^{\prime}}{|\alpha^{\prime}|} β=αα一定是垂直于它本身。再取他们的叉积得到 γ = α × β \gamma=\alpha \times \beta γ=α×β,三个单位矢量称为曲线的基本矢量。
其中 α \alpha α β \beta β组成的平面称为密切面, α \alpha α γ \gamma γ组成的平面称为从切面, γ \gamma γ β \beta β组成的平面称为副法面
在这里插入图片描述
图片来自施法中老师的《计算机辅助几何涉及与非均匀有理B样条》一书的21页
其中 κ = ∣ p ˙ × p ¨ ∣ ∣ p ˙ ∣ 3 \kappa = \frac{|\dot{p} \times \ddot{p}|}{|\dot{p}|^3} κ=p˙3p˙×p¨为曲率, τ \tau τ为挠率

计算弧长:
s ( u ) = ∫ u 0 u d s d u d u = ∫ u 0 u ∣ p ( u ) ˙ ∣ d u = ∫ u 0 u [ x ( u ) ˙ ] 2 + [ y ( u ) ˙ ] 2 + [ z ( u ) ˙ ] 2 d u \begin{align} s(u) & = \int_{u_0}^{u} \frac{ds}{du}du = \int_{u_0}^{u}|\dot{p(u)}|du \\ & = \int_{u_0}^{u} \sqrt[]{[\dot{x(u)}]^2+[\dot{y(u)}]^2+[\dot{z(u)}]^2} du \end{align} s(u)=u0ududsdu=u0up(u)˙du=u0u[x(u)˙]2+[y(u)˙]2+[z(u)˙]2 du
因为s代表弧长,随着u的增大,单调递增,所以存在反函数 u = u ( s ) u=u(s) u=u(s)。所以就得到了以曲线自身弧长为参数的曲线方程: p = p ( u ( s ) ) p=p(u(s)) p=p(u(s)),如果以s为参数,则 p = p ( s ) p=p(s) p=p(s),称为曲线的自然参数方程,弧长s称为自然参数,自然参数方程在轨迹规划中比较常用,在速度规划时,往往以ds为步进长度,计算对应的参数u进一步得出位置矢量p。

曲线/曲面连续性

  • 参数连续性:对于函数曲线,如果曲线上一点具有相等的直到k阶的左右导数,那么称这个点是 C k C^k Ck连续的。对于参数曲线,如果在一点处具有直到k阶的连续导矢,称这个点为 C k C^k Ck连续。在几何上 C 0 , C 1 , C 2 C^0,C^1,C^2 C0,C1,C2连续体现为:该点处图形连续,切线连续,曲率连续。
  • 几何连续性:如果两个曲线相应的弧长参数化在公共连接点具有 C k C^k Ck连续,那么它们在该点处具有 G k G^k Gk连续性。 G 0 , G 1 , G 2 G^0,G^1,G^2 G0,G1,G2体现为图形连续,一阶导矢方向连续 p 1 ( u ) ˙ = k p 2 ( u ) ˙ \dot{p_1(u)} = k\dot{p_2(u)} p1(u)˙=kp2(u)˙,二阶导矢方向连续 p 1 ( u ) ¨ = k p 2 ( u ) ¨ \ddot{p_1(u)} = k\ddot{p_2(u)} p1(u)¨=kp2(u)¨
    • 还有几种等价的定义,在书上第六章175页,自行查看。其中beta约束那个定义挺有意思的。/

简而言之,几何连续性体现曲线的光顺性,参数连续性体现曲线的可微性,对于 C 0 C^0 C0 G 0 G^0 G0二者是一样的。几何连续性与参数的选取无关,参数连续性与参数的选择也有关系。相同阶数下,几何连续性对自由度的约束更小。

样条

为了模拟物理样条形成的曲线,在力学上,物理样条处于应变能最小的状态,数学表示为 E = B ∫ κ 2 d s E=B\int \kappa^2 ds E=Bκ2ds,并近似处理,假定 ∣ p ˙ ∣ = 1 |\dot{p}| = 1 p˙=1,问题的解为 C 2 C^2 C2分段三次多项式。

书上81页有推导,不过不懂,好像也不影响。因为这种曲线不容易实现形状控制,用的不多。而且因为是近似求解的结果,所以还存在光顺问题。目前主流使用的曲线是B样条。

  • 1963年:参数三次曲线
  • 1972年:贝塞尔(bezier,也叫贝齐尔)曲线,B样条
  • 1975年:有理B样条
  • 80年代后期:非均匀有理B样条NURBS
    • 1992年STEP标准,将NURBS作为定义工业产品几何形状的唯一数学方法。

Ref

《计算机辅助几何设计与非均匀有理B样条》施法中

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

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

相关文章

TF-Grasp论文学习笔记

当 Transformer 遇到机器人抓取时:利用上下文进行有效的抓取检测 摘要 在这篇论文中,我们提出了一个基于transformer结构的用于机器人抓取的网络,我们将其命名为TF-Grasp。TF-Grasp网络架构有两个重要的设计,这使其可以对于视觉抓…

剪绳子(math)-acwing

题目: AcWing 25. 剪绳子 - AcWing 代码 主要是处理末尾端几个2,其余都是3,这样相乘能最大,因为4可以分为2*2,3不能分,然后5也没有3*2大,6也没有3*3大。 总之2*2没有3*3大,所以6不…

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备: Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…

基于SpringBoot的垃圾分类回收系统+LW示例参考

1.项目介绍 系统角色:管理员、普通用户、回收员功能模块:管理员(用户管理、回收员管理、垃圾类型管理、商品分类管理、环保商城管理、上门回收管理、订单分配管理、订单管理、系统管理等)、回收员(订单分配、订单管理…

华为入围Linux 内核CVE 检视“五人团”,openEuler要再进阶?

背景:内核社区接管 Linux 社区漏洞发布 往年 Linux 内核漏洞发布存在来源不固定、覆盖不全面,有时发布无修复补丁的 CVE 从而形成 0-day 漏洞等问题,给 Linux 内核安全带来了不确定性,为了更规范化运作,2024 年 2 月 1…

JS爬虫实战之TikTok_Shop验证码

TikTok_Shop验证码逆向 逆向前准备思路1- 确认接口2- 参数确认3- 获取轨迹参数4- 构建请求5- 结果展示 结语 逆向前准备 首先我们得有TK Shop账号,否则是无法抓取到数据的。拥有账号后,我们直接进入登录。 TikTok Shop 登录页面 思路 逆向步骤一般分为…

同等学力申硕国考只考一门的专业有哪些?

同等学力申硕国考英语,英语不考听力,若进行考前有效辅导,英语单科通过率可以较大幅度提高。相对其他非全日制研究生和全日制研究生而言,考试科目少了,总分少,复习量也相对少,比较适合在职人员报…

烟火识别软件LiteAIServer视频智能分析平台支持烟雾检测算法

随着科技的不断发展,安防管理平台在企业和机构中的应用日益广泛。烟火识别软件LiteAIServer集成了视频监控、报警系统等多种安防功能,为用户提供了一站式解决方案。 烟雾检测是在安防已经落地的AI算法 ,主要应用于:厂区、森林、仓…

llamaIndex和langchain对比及优劣对比

一. LangChain vs LlamaIndex: 基本描述 LlamaIndex在搜索和检索任务方面表现出色。它是一个强大的数据索引和查询工具,非常适合需要高级搜索的项目。LlamaIndex能够处理大型数据集,从而实现快速准确的信息检索。 LangChain是一个模块化和灵活的工具集框…

免费体验OS和CAN配置|昂辉科技EasySAR Configurator demo推出

自2018年起,昂辉科技专注于汽车电子行业,深耕车载基础软件领域,已研发出符合AUTOSAR标准的EasySAR车载基础软件平台。该平台包含基础软件包和配置工具链,旨在赋能产业链与供应链,推动行业发展。 EasySAR配置工具支持…

Android 源码的下载与编译

Android 源码的下载与编译 本章节主要介绍安卓系统的编译以及编译产物,根据我自己的经验只总结个人觉得重要的部分。 有价值的博客: https://blog.csdn.net/wuye110/article/details/8463409 https://juejin.cn/post/7288166472131018786 值得一看的…

docker安装portainer

1、拉取镜像 docker pull portainer/portainer-ce:latest2、执行 docker run -d --restartalways --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer/data:/data -v /data/portainer/public:/public portainer/portain…

手写jdbc 工具类(封装思维,解决硬编码...)

目录 前言 手写jdbc 工具类 封装思维 对于封装思维的理解 举一个关于封装思维的例子 解决硬编码 什么是硬编码? 硬编码的例子: 解决办法 解法1 解法2 解法3 jdbc工具类总的代码如下 资源关闭的先后问题 解决办法: 总结 …

The First项目报告:抗 MEV 交易的CoW Protocol什么?

2023年,当UNIswap推出UniswapX 时,市场迎接它的不是赞叹,而是一片争议。UniswapX被指抄袭 CoWSwap 和 1inch。Curve 官方称 1inch 和 CoWSwap 早已改变游戏规则,UniswapX 非首创。CoWSwap 强调其 Intent Based Trading 的先驱地位…

微服务day06

MQ入门 同步处理业务: 异步处理: 将任务处理后交给MQ来进行分发处理。 MQ的相关知识 同步调用 同步调用的小结 异步调用 MQ技术选型 RabbitMQ 安装部署 其中包含几个概念: publisher:生产者,也就是发送消息的一方 …

C语言 | Leetcode C语言题解之第541题反转字符串II

题目&#xff1a; 题解&#xff1a; void swap(char* a, char* b) {char tmp *a;*a *b, *b tmp; }void reverse(char* l, char* r) {while (l < r) {swap(l, --r);} }int min(int a, int b) {return a < b ? a : b; }char* reverseStr(char* s, int k) {int n strl…

众创空间全民清债行动助力“三箭齐发”,共化地方债务危机

近日,中国财政领域迎来重大利好消息,政府“三箭齐发”策略出台,旨在高效化解地方债务问题,为经济稳健前行扫清障碍。而在这场化解债务的风暴中,众创空间全民清债行动以其独特的创新模式和卓越的服务能力,成为备受瞩目的助力者。历经15天的内测,众创空间全民清债行动于11月10日正…

Spring的XML配置:从“啊这...“到“啊,就这...“ --手写Spring第六篇了

这一篇让我想起来学习 Spring 的时&#xff0c;被 XML 支配的恐惧。明明是写Java&#xff0c;为啥要搞个XML呢&#xff1f;大佬们永远不知道&#xff0c;我认为最难的是 XML 头&#xff0c;但凡 Spring 用 JSON来做配置文件&#xff0c;Java 界都有可能再诞生一个扛把子。 <…

短剧小程序开发定制

短剧小程序的开发定做是一项结合了创意与技术的工作&#xff0c;它不仅能够为用户提供沉浸式的娱乐体验&#xff0c;还能为企业或个人创造新的商业机会。在开始开发之前&#xff0c;首先需要明确几个关键点&#xff1a; 需求分析&#xff1a;与客户深入沟通&#xff0c;了解他…

Step-by-step指南,带你飞越技术障碍!稳联技术Profinet转CanOpen网关连接步科电机!

嘿&#xff0c;宝子们&#xff01;今天我要给大家分享一个超好玩的工业自动化“大玩具”——通过稳联技术CanOpen转Profinet网关连接步科电机。 在工业自动化的奇妙世界里&#xff0c;不同协议的设备连接就像一场刺激的冒险游戏。而这个神奇的组合&#xff0c;简直就是打开冒险…