图形学中的Hermite曲线

图形学中的Hermite曲线Hermite 曲线 nbsp nbsp nbsp nbsp nbsp 三次 Hermite 曲线是以法国数学家 CharlesHermi 命名的 他是三次参数样条曲线的基础

    前几天考了图形学考试,一开始看Hermite曲线PPT的时候不怎么看得懂,网上查资料的时候也是东一点西一点,看的头疼。本来昨天打算把关于Hermite曲线的内容整理一下,结果玩了一天回来以后就不怎么想动手,今天终于整理了。2016年来了,希望在这一年里多做一点有意义的事情。内容如下:(一开始用Word整理的,有的符号没有了,所以有的打算用截图代替)

Hermite曲线

      三次Hermite曲线是以法国数学家Charles Hermite命名的。他是三次参数样条曲线的基础。

定义:Hermite曲线是以曲线的两个端点P0,P1和端点处的切向矢量P0‘,P1‘为边界条件的三次参数曲线。

 

空间自由曲线三次参数方程的一般形式可表示为

图形学中的Hermite曲线

现在已知P0,P1 ,P0‘,P1‘,代入求出A,B,C,D

Q’(t)=3At2+2Bt+C
图形学中的Hermite曲线


解得,

A = P0 ‘+ P1 ‘+2(P0– P1)

B = 3(P– P0)-2 P0‘ – P1

C = P0

D = P0

所以,可得

图形学中的Hermite曲线

曲线可表示为Q(t) = Fn1P0+ Fn2P1 + Fn3P0‘ + Fn4P1

图形学中的Hermite曲线

下面求Hermite的二阶导数形式:

Fn1  =2t3 – 3t2+1   F’n1 =6t2 – 6t      F’’n1 =12t – 6

Fn2  =-2t3 + 3t2      F’n2 =-6t2 + 6t     F’’n2 =-12t + 6

Fn3  =t3 – 2t2+ t    F’n3 =3t2 – 4t +1   F’’n3 =6t – 4

Fn4  = t3-t2            F’n4 = 3t2 – 2t      F’’n4 = 6t – 2

 

Q’’(t) = F’’n1(t)Q(0)+ F’’n2(t)Q(1) + F’’n3(t)Q’(0) + F’’n4(t)Q’(1)

 

t =0时:

Q’’(0) = -6Q(0) + 6Q(1) -4Q’(0) – 2Q’(1)

t =1时:

Q’’(1) = 6Q(0) – 6Q(1) +2Q’(0) + 4Q’(1)

联立消除Q’(0), Q’(1)

Q(t) = (1-t)Q(0) + tQ(1) +1/6(-t3 + 3t2 -2t)Q’’(0) + 1/6( t3-t )Q’’(1)

 

 

连续的三次参数样条曲线

现有一组离散点Pi(i = 1,2,…n),需要构造连续曲线。据Hermite曲线的边界条件,构造n-1段曲线。

图形学中的Hermite曲线
 

条件:连接点处,二阶导数连续



设有三点Pi-1,Pi,Pi+1构造两段曲线,即Pi-1Pi和PiPi+1

对于Pi-1Pi段:(起点)P’’i-1= -6Pi-1 + 6Pi– 4P’i-1– 2P’i

                         (终点) P’’= 6Pi-1 -6Pi +2P’i-1 + 4P’i

对于PiPi+1段:(起点)P’’i =-6Pi + 6Pi +1– 4P’i– 2P’i+1

                         (终点) P’’i+1 = 6Pi -6Pi+1 +2P’i + 4P’i+1

得到 Pi-1+ 4Pi + Pi+1 = 3(Pi+1 – Pi-1)

 

边界条件分为自由端,夹持端,抛物端

1:自由端

在两端点处的二阶导数为零

即P’’1 =-6P1 + 6P2 – 4P’1 -2P’2 =0  && P’’n= 6Pn-1 – 6Pn + 2P’n-1+ 4P’n

得到 2P’1 + P’2= 3(P2 – P1)

        P’n-1 + 2P’n = 3(Pn– Pn-1)

 

2:夹持端

即端点处的切向矢量为已知

P’1 = k1E1     P’n = knEn   E1,En为已知的断点切向矢量

 

3:抛物端

即求得的分段曲线最初段和最末段为抛物线,所以曲线的二次导数为一个常数,即这两段曲线起点终点处导数相等,由此得到

P’2 + P’1= 2(P2 – P1)

P’n + P’n-1= 2(Pn – Pn-1)

 

 






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209671.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:41
下一篇 2026年3月19日 上午8:41


相关推荐

  • python能够设置标签背景色的属性是( )_pycharm设置开发模板/字体大小/背景颜色(3)…

    python能够设置标签背景色的属性是( )_pycharm设置开发模板/字体大小/背景颜色(3)…一 pycharm 设置字体大小 风格选择 File gt setting gt Editor gt Font 可以看到如上界面 可以根据自己的喜好随意调整字体大小 字体风格 文字行间距 设置之后下面的窗口能够实时预览 调整都比较方便 很简单 上面这个是我自己的配置 二 pycharm 设置背景颜色选择 File gt setting gt Editor gt

    2026年3月27日
    3
  • C++23种设计模式(20)-状态模式

    C++23种设计模式(20)-状态模式状态模式 允许一个对象在其内部状态改变时改变它的行为 对象看起来似乎修改了它的类 它有两种使用情况 1 一个对象的行为取决于它的状态 并且它必须在运行时刻根据状态改变它的行为 2 一个操作中含有庞大的多分支的条件语句 且这些分支依赖于该对象的状态 本文的例子为第一种情况 以战争为例 假设一场战争需经历四个阶段 前期 中期 后期 结束 当战争处于不同的阶段 战争的行为是不一样的 也就说战争的行为取决于所处的阶段 而且随着时间的推进是动态变化的 include iostream in iostream

    2025年6月23日
    6
  • editormd html 转义,Markdown(editormd)语法解析成html

    editormd html 转义,Markdown(editormd)语法解析成html我们在一些网站中可以见到一款网页编辑器 markdown 这是一款功能强大的富文本编辑器 之前自己在网页上使用的时候遇到了一点点的问题 现在跟大家分享下在我们写了文章之后是需要将内容保存到数据库的 如果保存到数据库中要方便以后需改的话 那么需要保存成 markdown 语言 如果保存成 html 语言通过反向解析成 markdown 这个可能效果不是很好如果保存成 markdown 就涉及到将数据库中的数据取出

    2026年3月18日
    4
  • 指纹算法 c语言,指纹识别算法研究

    指纹算法 c语言,指纹识别算法研究内容介绍原文档由会员神七问天发布指纹识别算法研究 58 页 3 8 万字摘要本文在深入研究学习了离散小波变换 自适应标量量化 游程编码和霍夫曼编码的基础上 结合指纹纹理的特征 依据 WSQ 标准中的规定用 C 语言在 C Builder 环境下实现指纹图像压缩算法的实现并提出该算法的不足之处 该算法首先利用 9 7 滤波器进行对称的离散小波变换 为了在压缩中更精确地保持指纹细节点信息 对指纹图像进行了小波包变换

    2026年3月18日
    2
  • 年度AI迷惑行为大赏:花500元安装还得花299元请人卸载……

    年度AI迷惑行为大赏:花500元安装还得花299元请人卸载……

    2026年3月16日
    2
  • 【保姆级】无需代码!用 n8n 从0到1搭建 AI RAG 知识库,全流程实战变现!

    【保姆级】无需代码!用 n8n 从0到1搭建 AI RAG 知识库,全流程实战变现!

    2026年3月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号