B样条曲线生成

Bezier曲线缺点:改变任一控制点的位置,将影响整条曲线的形状。

B样条曲线是对Bezier曲线的改进,可进行局部控制,生成的曲线与控制多边形的外形更接近,将Bezier曲线作为一特例。

三次B样条曲线的矩阵表达式

\[\begin{aligned}P(t) &= \frac 1 6 \begin{bmatrix} t^3 & t^2 &t & 1\end{bmatrix}\begin{bmatrix}-1 & 3 & -3 & 1\\ 3& -6 & 3 & 0\\ -3 & 0 & 0 & 0\\ 1& 4& 1& 0\end{bmatrix} \begin{bmatrix} P_0 \\ P_1 \\P_2 \\ P_3\end{bmatrix}\quad 0\le t \le 1\end{aligned}
\]

\[\begin{aligned}P'(t) &= \frac 1 2 \begin{bmatrix} t^2 &t & 1\end{bmatrix}\begin{bmatrix}-1 & 3 & -3 & 1\\ 2& -4 & 2 & 0\\ -1 & 0 & 1& 0\end{bmatrix} \begin{bmatrix} P_0 \\ P_1 \\P_2 \\ P_3\end{bmatrix}\end{aligned}
\]

\[\begin{aligned}P''(t) &= \begin{bmatrix} t & 1\end{bmatrix}\begin{bmatrix}-1 & 3 & -3 & 1\\ 1& -2 & 1 & 0\\ \end{bmatrix} \begin{bmatrix} P_0 \\ P_1 \\P_2 \\ P_3\end{bmatrix}\end{aligned}
\]

根据以上三式,得

\[P(0)=\frac 16 (P_0+4P_1+P_2)
\]

\[P(1)=\frac 16 (P_1+4P_2+P_3)
\]

\[ P’(0)=\frac 1 2(P_2-P_0)
\]

\[P’(1)=\frac 1 2(P_3-P_1)
\]

\[P’’(0)= P_0-2P_1+P_2
\]

\[P’’(1)= P_1-2P_2+P_3
\]

起点\(P(0)\)和终点\(P(1)\)不在特征多边形的顶点上

\(P’(0)\)平行于\(P_0P_2\) ,\(P’(1)\)平行于\(P_1P_3\)

Bezier曲面

讨论双三次Bezier曲面,通过给顶的\(4\times 4\)个空间网格点来控制的。16个控制点决定了Bezier曲面的形状。

将16 个控制点写成矩阵:

\[B=
\begin{bmatrix}
P_{00} & P_{01} & P_{02} & P_{03}\\
P_{10} & P_{11} & P_{12} & P_{13}\\
P_{20} & P_{21} & P_{22} & P_{23}\\
P_{30} & P_{31} & P_{32} & P_{33}
\end{bmatrix}
\]

Bezier曲面的表达式为:

\[r(u,w)=U\cdot N\cdot B\cdot N^T\cdot W^T\qquad 0≤u≤1, 0≤w≤1
\]

写成x,y,z三个方向分量的形式,则Bezier曲面可表示为:

\[x(u,w)=U\cdot N\cdot B_x\cdot N^T\cdot W^T
\]

\[y(u,w)=U\cdot N\cdot B_y\cdot N^T\cdot W^T
\]

\[z(u,w)=U\cdot N\cdot B_z\cdot N^T\cdot W^T
\]

\[0≤u≤1, 0≤w≤1
\]

曲线生成与求交—B样条曲线的更多相关文章

  1. 曲线生成与求交—Bezier曲线

    Bezier曲线生成 法国工程师Pierre Bezier在雷诺公司使用该方法来设计汽车.一条Bezier曲线可以拟合任何数目的控制点. 公式 设\(n+1\)个控制点\(P_0,P_1--P_n\) ...

  2. 实验6 Bezier曲线生成

    1.实验目的: 了解曲线的生成原理,掌握几种常见的曲线生成算法,利用VC+OpenGL实现Bezier曲线生成算法. 2.实验内容: (1) 结合示范代码了解曲线生成原理与算法实现,尤其是Bezier ...

  3. ray与triangle/quad求交二三事

    引擎中,ray与quad求交,算法未细看,但有求解二次方程,不解.ray与triangle求交,使用的是97年经典算法,仔细看过论文,多谢小武同学指点,用到了克拉默法则求解线性方程组.想模仿该方法,做 ...

  4. [NetTopologySuite](2)任意多边形求交

    任意多边形求交: private void btnPolygon_Click(object sender, EventArgs e) { , , , , , , , , , , , , , }; , ...

  5. HDU - 3982:Harry Potter and J.K.Rowling(半平面交+圆与多边形求交)(WA ing)

    pro:给定一枚蛋糕,蛋糕上某个位置有个草莓,寿星在上面切了N刀,最后寿星会吃含有草莓的那一块蛋糕,问他的蛋糕占总蛋糕的面积比. sol:显然需要半平面交求含有蛋糕的那一块,然后有圆弧,不太方便求交. ...

  6. 光线求交-面、三角形、球 (Ray intersection)

    光线求交 光线定义:position \(a(t)\) = \(o\) + \(t\vec{d}\); 球定义: center p, radius r; 平面定义:normal \(\vec{n}\) ...

  7. hdu 5111 树上求交

    hdu 5111 树上求交(树链剖分 + 主席树) 题意: 给出两棵树,大小分别为\(n1\),\(n2\), 树上的结点权值为\(weight_i\) 同一棵树上的结点权值各不相同,不同树上的结点权 ...

  8. 一步一步实现基于GPU的pathtracer(二):求交算法

    不管是哪种全局光照算法,最根本的都要落实到光线与物体的求交.主要分为光线与参数曲面和非参数曲面的求交,典型的参数曲面有球.盒.圆柱等基本体及基本体的组合体,以及一些更为复杂的参数曲面.非参数曲面就是所 ...

  9. OpenCASCADE直线与平面求交

    OpenCASCADE直线与平面求交 在<解析几何>相关的书中都给出了直线和平面的一般方程和参数方程.其中直线的一般方程有点向式形式的. 由于过空间一点可作且只能作一条直线平行于已知直线, ...

随机推荐

  1. python数据处理(二)之处理Excel文件

    代码与资料 https://github.com/jackiekazil/data-wrangling 1.安装相关包 2.解析Excel文件 在解析Excel之前应该想办法寻找替代的格式 3.开始解 ...

  2. uPDF-功能强大的PDF文件处理小工具

    前几天因为工作原因,需要将一个PDF压缩一下. 网上找了半天,要么收费,要么就是转换的质量不太好.论坛也找到一些破解的软件,但是总有点不太合适,有些功能还挺复杂.也有些在线转换的,又考虑到自己较为隐私 ...

  3. 全栈的自我修养: 003Axios 的简单使用

    全栈的自我修养: Axios 的简单使用 You should never judge something you don't understand. 你不应该去评判你不了解的事物. 全栈的自我修养: ...

  4. odoo12数据库自动化备份

    数据库自动备份模块地址 https://github.com/Yenthe666/auto_backup#8.0 目前支持8以上的版本 odoo12的配置步骤 1.下载模块到自己的模块目录 2.登录o ...

  5. SparkCore

    一.概述 1,定义 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象.代码中是一个抽象类,它代表一个不可变.可分区.里面的元素可 ...

  6. 回文树(回文自动机)(PAM)

    第一个能看懂的论文:国家集训队2017论文集 这是我第一个自己理解的自动机(AC自动机不懂KMP硬背,SAM看不懂一堆引理定理硬背) 参考文献:2017国家集训队论文集 回文树及其应用 翁文涛 参考博 ...

  7. ELK5.6.4+Redis+Filebeat+Nginx(CentOS7.4)

    下载地址: Elasticsearhc: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz ...

  8. 性能分析(1)- Java 进程导致 CPU 使用率升高,问题怎么定位?

    性能分析小案例系列,可以通过下面链接查看哦 ps:这些分析小案例不能保证百分比正确,是博主学习过程中的总结,仅做参考 前提 本机有一个很占用 CPU 的项目,放在了 Tomcat 下启动着 如何定位 ...

  9. 443端口被占用无法启动解决办法(如何查找进程ID)

    摘自CSDN博客,原文地址:http://blog.csdn.net/pet8766/article/details/8186955 netstat -ano|findstr "443&qu ...

  10. Redis的事件机制

    目录 一.Redis的运行过程 二.事件数据结构 2.1 文件事件数据结构 2.2 事件事件数据结构 3.3 事件循环 三.事件的注册过程 3.1 文件事件的注册过程 3.2 时间事件的注册过程 四. ...