过渡曲线的构造之平面PH曲线

平面PH曲线的构造及其相应性质

  • 平面PH曲线的构造及其相应性质
    • PH曲线理论
    • 三次PH曲线的构造及性质
    • 四次PH曲线的构造及性质
    • 五次PH曲线的构造及性质
      • 非尖点五次PH曲线
      • 尖点五次PH曲线
    • 参考文献

平面PH曲线的构造及其相应性质

过渡曲线常需要满足在连接点处位置连续、曲率连续以及切线方向向量连续的三个条件。关于过渡曲线的构造,前文已经总结了Béizer曲线和多项式曲线,本文主要对PH曲线构造的相关问题进行分析总结。

PH曲线理论

定义:若平面n次贝塞尔曲线P(t)=(x(t),y(t))的速端曲线具有PH性质,则称它为n次PH曲线。即存在多项式σ(t),使得 x ′ 2 + y ′ 2 = σ 2 ( t ) x^{'2}+y^{'2}=\sigma^2(t) x2+y2=σ2(t) 则称多项式P(t)为n次PH曲线。

贝塞尔曲线方程表达形式为: P ( t ) = ∑ j = 0 n p j B j n ( t ) , 0 ≤ t ≤ 1 P(t)=\sum_{j=0}^n p_j B_j^n (t) , 0≤t≤1 P(t)=j=0npjBjn(t),0t1其中伯恩斯坦基函数的形式为:
B j n ( t ) = C n j ( 1 − t ) n − j t j , 0 ≤ t ≤ 1 B_j^n(t)=C_n^j(1-t)^{n-j}t^j , 0≤t≤1 Bjn(t)=Cnj(1t)njtj,0t1

关于贝塞尔曲线的求导,参考知乎上的一篇文章,我在文末会放上参考网址。
贝塞尔曲线在 t 处的一阶导数为:
C ′ ( t ) = ∑ i = 0 n − 1 p i ( 1 ) B i , n − 1 ( t ) C^{'}(t)=\sum_{i=0}^{n-1} p_i^{(1)} B_{i,n-1}(t) C(t)=i=0n1pi(1)Bi,n1(t) p i ( 1 ) = n ( p i + 1 − p i ) p_i^{(1)}=n(p_{i+1}-p_i) pi(1)=n(pi+1pi)

三次PH曲线的构造及性质

设三次Bezier曲线为
P ( t ) = ∑ j = 0 3 P j B j 3 ( t ) , 0 ≤ t ≤ 1 P(t)=\sum_{j=0}^3 P_jB_j^3 (t) , 0≤t≤1 P(t)=j=03PjBj3(t),0t1
(1)x’(t)和y’(t)的形式验证

为确保P(t)为一个PH曲线,定义x‘(t)和y’(t)的形式如下:
x ′ ( t ) = w ( t ) [ u 2 ( t ) − v 2 ( t ) ] x^{'}(t)=w(t)[u^2(t)-v^2(t)] x(t)=w(t)[u2(t)v2(t)] y ′ = 2 w ( t ) u ( t ) v ( t ) y^{'}=2w(t)u(t)v(t) y=2w(t)u(t)v(t)
其中,w(t)=1
u ( t ) = u 0 b 0 1 ( t ) + u 1 b 1 1 ( t ) u(t)=u_0b_0^1(t)+u_1b_1^1(t) u(t)=u0b01(t)+u1b11(t) v ( t ) = v 0 b 0 1 ( t ) + v 1 b 1 1 ( t ) v(t)=v_0b_0^1(t)+v_1b_1^1(t) v(t)=v0b01(t)+v1b11(t)
代入Bernstein系数,因此有,
在这里插入图片描述
因此验证得: x ′ ( t ) = [ u 2 ( t ) − v 2 ( t ) ] , y ′ = 2 u ( t ) v ( t ) x^{'}(t)=[u^2(t)-v^2(t)],y^{'}=2u(t)v(t) x(t)=[u2(t)v2(t)]y=2u(t)v(t)
(2)控制顶点关系验证
由贝塞尔曲线的一阶导数公式有,
x ′ ( t ) = 3 ( p 1 x − p 0 x ) b 0 2 ( t ) + 3 ( p 2 x − p 1 x ) b 1 2 ( t ) + 3 ( p 3 x − p 2 x ) b 2 2 ( t ) x^{'}(t)=3(p_{1x}-p_{0x})b_0^2(t) +3(p_{2x}-p_{1x})b_1^2(t) + 3(p_{3x}-p_{2x})b_2^2(t) x(t)=3(p1xp0x)b02(t)+3(p2xp1x)b12(t)+3(p3xp2x)b22(t) y ′ ( t ) = 3 ( p 1 y − p 0 y ) b 0 2 ( t ) + 3 ( p 2 y − p 1 y ) b 1 2 ( t ) + 3 ( p 3 y − p 2 y ) b 2 2 ( t ) y^{'}(t)=3(p_{1y}-p_{0y})b_0^2(t)+3(p_{2y}-p_{1y})b_1^2(t)+3(p_{3y}-p_{2y})b_2^2(t) y(t)=3(p1yp0y)b02(t)+3(p2yp1y)b12(t)+3(p3yp2y)b22(t)
因此,联立两式有,
p 1 x − p 0 x = 1 3 ( u 0 2 − v 0 2 ) , p 2 x − p 1 x = 1 3 ( u 0 u 1 − v 0 v 1 ) , p 3 x − p 2 x = 1 3 ( u 1 2 − v 1 2 ) p_{1x}-p_{0x}=\frac{1}{3}(u_0^2-v_0^2),p_{2x}-p_{1x}=\frac{1}{3}(u_0u_1-v_0v_1),p_{3x}-p_{2x}=\frac{1}{3}(u_1^2-v_1^2) p1xp0x=31(u02v02),p2xp1x=31(u0u1v0v1),p3xp2x=31(u12v12) p 1 y − p 0 y = 1 3 ( 2 u 0 v 0 ) , p 2 y − p 1 y = 1 3 ( u 0 v 1 + u 1 v 0 ) , p 3 y − p 2 y = 1 3 ( 2 u 1 v 1 ) p_{1y}-p_{0y}=\frac{1}{3}(2u_0v_0),p_{2y}-p_{1y}=\frac{1}{3}(u_0v_1+u_1v_0),p_{3y}-p_{2y}=\frac{1}{3}(2u_1v_1) p1yp0y=31(2u0v0),p2yp1y=31(u0v1+u1v0),p3yp2y=31(2u1v1)
因此,控制顶点满足的关系整理如下:
在这里插入图片描述
(3)验证三次贝塞尔曲线称为PH曲线的充要条件是:
L 2 = L 1 L 3 ,且 θ 1 = θ 2 L_2=\sqrt{L_1L_3} ,且\theta_1=\theta_2 L2=L1L3 ,且θ1=θ2
其中几何边和角的位置分布如图所示:
在这里插入图片描述
定义d01表示p0和p1的距离,d12表示p1和p2的距离,d23表示p2和p3的距离。因此有:
在这里插入图片描述

因此可验证得到, L 2 = L 1 L 3 L_2=\sqrt{L_1L_3} L2=L1L3
接下来就是证明 θ 1 = θ 2 \theta_1=\theta_2 θ1=θ2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)三次PH曲线的参数速率表示为:
σ ( t ) = ∑ i = 0 2 σ i B i 2 ( t ) \sigma(t)=\sum_{i=0}^2\sigma_iB_i^2(t) σ(t)=i=02σiBi2(t)
由弧长的定义 S ( t ) = ∫ 0 t σ ( τ ) d τ S(t)=\int_0^t\sigma(\tau) d\tau S(t)=0tσ(τ)dτ
S ( t ) = ∑ i = 0 3 S i B i 3 ( t ) , 0 ≤ t ≤ 1 S(t)=\sum_{i=0}^3S_iB_i^3(t),0≤t≤1 S(t)=i=03SiBi3(t),0t1
其中, S 0 = 0 , S i = 1 3 ∑ 0 i − 1 σ j , i = 1 , 2 , 3 S_0=0,S_i=\frac{1}{3} \sum_0^{i-1} \sigma_j ,i=1,2,3 S0=0,Si=310i1σj,i=1,2,3
三次PH曲线的全弧长为:
S = S ( 1 ) = 1 3 ∑ 0 2 σ i S=S(1)=\frac{1}{3} \sum_0^2 \sigma_i S=S(1)=3102σi

四次PH曲线的构造及性质

令平面四次PH曲线 P ( t ) = ∑ t = 0 4 p t B t 4 ( t ) , 0 ≤ t ≤ 1 P(t)=\sum_{t=0}^4p_tB_t^4(t), 0≤t≤1 P(t)=t=04ptBt4(t),0t1为了使P(t)为PH曲线,则作如下假设:
在这里插入图片描述
其中,
在这里插入图片描述

代入公式计算有,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四次PH曲线的性质:
在这里插入图片描述

五次PH曲线的构造及性质

五次PH曲线有两种:非尖点五次PH曲线和尖点五次PH曲线。

非尖点五次PH曲线

在这里插入图片描述
在这里插入图片描述

尖点五次PH曲线

在这里插入图片描述

参考文献

以上内容主要参考以下文献。
[1]: 知乎:贝塞尔曲线的求导https://zhuanlan.zhihu.com/p/130247362
[2]: Pythagorean hodographs
[3]: 一类五次PH曲线Hermite插值的几何方法
[4]: PH曲线的研究及其应用
[5]: PH曲线的构造及相关问题研究
[6]:基于PH曲线的Delta机器人轨迹规划方法
[7]: 基于PH曲线的无人机路径规划算法

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

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

相关文章

韵达快递查询,韵达快递单号查询,一键筛选出单号中的退回件

批量查询韵达快递单号的物流信息,并将其中的退回件一键筛选出来。 所需工具: 一个【快递批量查询高手】软件 韵达快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的朋友记得先注册&#xff…

鸿蒙(HarmonyOS)应用开发——装饰器

简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,扩展了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。TS是JavaScript(简称JS)的超…

MySQL 库操作 | 表操作

文章目录 一.MySQL库的操作1.创建数据库2.字符集和校验规则3.操纵数据库 二.MySQL表的操作1.创建表2.操作表3.删除表 一.MySQL库的操作 1.创建数据库 创建数据库 创建数据库的SQL如下: CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSETcharset_name…

一篇文章完成Hbase入门

文章目录 一、简介1、数据模型结构2、物理存储结构3、数据模型4、基本架构 二、安装1、下载解压安装包2、修改配置文件3、启动服务(单机、集群)4、配置高可用(HA) 三、命令行操作1、建表2、新增/更新数据3、查看表数据4、删除数据5、修改默认保存的数据版本 四、架构1、RegionS…

数据提取PDF SDK的对比推荐

PDF 已迅速成为跨各种平台共享和分发文档的首选格式,它作为一种数据来源,常见于公司的各种报告和报表中。为了能更好地分析、处理这些数据信息,我们需要检测和提取 PDF 中的数据,并将其转换为可用且有意义的格式。而数据提取的 PD…

物联网中基于信任的安全性调查研究:挑战与问题

A survey study on trust-based security in Internet of Things: Challenges and issues 文章目录 a b s t r a c t1. Introduction2. Related work3. IoT security from the one-stop dimension3.1. Output data related security3.1.1. Confidentiality3.1.2. Authenticity …

快速认识Linux的几个指令

我们先简单认识几个指令,为之后的指令学习打好基础 打开XShell并登录云服务器 01.pwd指令 pwd命令的作用是显示当前在Linux系统中所处的路径 02.ls指令 ls命令的作业是罗列出当前路径下的文件名(即pwd的路径下),由于我们没有新…

Docker Swarm总结+Jenkins安装配置与集成(4/4)

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码下载地址🍅 👇🏻 精彩专栏推荐订阅👇🏻…

Python可迭代对象排序:深入排序算法与定制排序

更多Python学习内容:ipengtao.com 排序在计算机科学中是一项基础而关键的操作,而Python提供了强大的排序工具来满足不同场景下的排序需求。本文将深入探讨Python中对可迭代对象进行排序的方法,涵盖基础排序算法、sorted函数的应用、以及定制排…

【C++初阶】STL详解(八)List的模拟实现

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

【深度学习笔记】03 微积分与自动微分

03 微积分与自动微分 导数和微分导数解释的可视化偏导数梯度链式法则自动微分非标量变量的反向传播分离计算 导数和微分 假设我们有一个函数 f : R → R f: \mathbb{R} \rightarrow \mathbb{R} f:R→R,其输入和输出都是标量。 如果 f f f的导数存在,这个…

GIT版本控制和常用命令使用介绍

GIT版本控制和常用命令使用介绍 1. 版本控制1.1 历史背景1.2 什么是版本控制1.3 常见版本控制工具1.4 版本控制的分类 2 Git介绍2.1 Git 工作流程2.2 基本概念2.3 文件的四种状态2.4 忽略文件2.5 Git命令2.5.1 查看本地git配置命令2.5.2 远程库信息查看命令2.5.3 分支交互命令2…

WorkPlus即时通讯软件,以自主安全为底座,连接工作的一切

在当今竞争激烈的商业环境中,中大型企业对于移动办公平台的需求越来越迫切。在众多可选的平台中,WorkPlus凭借其高性价比和针对中大型企业的特色功能,成为了许多企业的首选。本文将为各位读者深度解析WorkPlus私有化部署的优势,带…

学习.NET验证模块FluentValidation的基本用法(续2:其它常见用法)

FluentValidation模块支持调用When和Unless函数设置验证规则的执行条件,其中when函数设置的是满足条件时执行,而Unless函数则是满足条件时不执行,这两个函数的使用示例如及效果如下所示: public AppInfoalidator() {RuleFor(x>…

Mysql 解决Invalid default value for ‘created_at‘

在mysql版本 8.0 和 5.* 之间数据互导的过程中,老是会出现各种错误,比如 这个created_at 一定要有一个默认值, 但是我加了 default null 还是会报错,于是对照了其他的DDL 发现,需要再加 null default null 才行&#…

从0开始学习JavaScript--JavaScript事件:响应与交互

JavaScript的事件处理是Web开发中至关重要的一部分,通过事件,能够实现用户与页面的互动,使得网页更加生动和交互性。本文将深入探讨JavaScript事件的各个方面,包括事件的基本概念、事件类型、事件对象、事件冒泡与捕获、事件委托、…

如何看待 2023 OPPO 开发者大会?潘塔纳尔进展如何?AndesGPT 有哪些亮点?

在2023年11月16日举行的OPPO开发者大会(ODC23)上,OPPO带来了全新ColorOS 14、全新互联网服务生态以及健康服务进展,这些新动态中有许多值得关注的地方。 1、全新ColorOS 14: 效率提升:ColorOS 14通过一系列…

虚拟机可ping树莓派树莓派无法ping虚拟机 的解决办法

问题描述 在学习交叉编译的过程中,发现了树莓派无法ping通虚拟机的问题。所以我尝试了各种ping,发现: 虚拟机可以ping通树莓派和主机树莓派可以ping通主机主机可以ping通树莓派和虚拟机唯独树莓派没法ping通虚拟机 尝试各种方法后找到一种…

Qt手写ListView

创建视图: QHBoxLayout* pHLay new QHBoxLayout(this);m_pLeftTree new QTreeView(this);m_pLeftTree->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑m_pLeftTree->setFixedWidth(300);创建模型和模型项: m_pLeftTree…

车载通信架构 —— 传统车内通信网络FlexRay(较高速度高容错、较灵活拓扑结构)

车载通信架构 —— 传统车内通信网络FlexRay(较高速度高容错、较灵活拓扑结构) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,…