- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 OpenGL 绘制 Hermite 曲线,有内置函数吗?我在网上看到一些示例,展示了如何使用计算器绘制贝塞尔曲线,但找不到任何埃尔米特曲线的信息。
最佳答案
让贝塞尔曲线的控制点向量为 [b0 b1 b2 b3],埃尔米特曲线的控制点向量为 [h0 h1 v0 v1](v0 和 v1 是点 h0 和 h1 处的导数/切线)。然后我们可以用矩阵的形式来展示转换结果:
埃尔米特到贝塞尔曲线
[b0] = 1 [ 3 0 0 0] [h0][b1] - [ 3 0 1 0] [h1][b2] 3 [ 0 3 0 -1] [v0][b3] [ 0 3 0 0] [v1]
(这与上面 Naaff 的回复完全相同)。
贝塞尔曲线到埃尔米特
[h0] = [ 1 0 0 0] [b0][h1] [ 0 0 0 1] [b1][v0] [-3 3 0 0] [b2][v1] [ 0 0 -3 3] [b3]
因此,在矩阵形式中,这些可能比所需的稍微复杂一些(毕竟 Naaff 的代码简短而切题)。它很有用,因为我们现在可以很容易地超越隐士。
特别是,我们可以引入另一个经典的基数三次参数曲线:Catmull-Rom 曲线。它有控制点 [c_1 c0 c1 c2](与贝塞尔曲线不同,该曲线从第二个控制点延伸到第三个控制点,因此通常从 -1 开始编号)。到贝塞尔曲线的转换为:
Catmull-Rom 到贝塞尔
[b0] = 1 [ 0 6 0 0] [c_1][b1] - [-1 6 1 0] [c0][b2] 6 [ 0 1 6 -1] [c1][b3] [ 0 0 6 0] [c2]
贝塞尔曲线到 Catmull-Rom
[c_1] = [ 6 -6 0 1] [b0][c0] [ 1 0 0 0] [b1][c1] [ 0 0 0 1] [b2][c2] [ 1 0 -6 6] [b3]
我也可以使用 Hermite 到 Catmull-Rom 对,但很少使用它们,因为贝塞尔曲线通常是主要表示形式。
关于opengl - 在OpenGL中绘制Hermite曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030596/
Haskell 允许以非常简洁的方式表示循环函数。例如,包含斐波那契数的无限列表可以定义如下: fibs :: [Integer] fibs = 1 : 1 : zipWith (+) fibs (t
我正在尝试使用 C++ 中的 Hermite 方法绘制曲线。我知道有两个点是起点和终点,而另外两个点在两端给出切线。端点可以直接猜,但切线的值如何确定。当我给出简单的值时,我要么在一条直线上结束,要么
我目前有got this bounty running on how to resample audio data with the intention of increasing the pitch
我想从本体文件dbpedia_2016-10.owl(从 https://wiki.dbpedia.org/downloads-2016-10 下载,我是初学者,通过引用其他一些代码构建了这个方法)该
我是 OWL API 的新手。我正在使用 here 中大量建议的 OWL API 文档。我正在使用同样著名的 Pizza.owl。考虑以下代码片段 OWLClass mozzarellaTopping
我使用 Protege 创建了一个本体,并添加了 SWRL 规则,使用 Hermit Reasoner,一切都很好,但它没有显示推断的 DataProperties。 我尝试使用 Pellet,它能够
假设我在 Protege 中创建了一些本体,并且有一个具有某些对象属性的类实例,以及对象属性列表,如下图所示: 对象属性的层次结构如下: 现在,当我打开 Reasoner(Hermit)时,我会得到同
#include int main() { int n, i, j; float x[10] = { 0 }, fx[10] = { 0 }, f1x[10] = { 0 }, z[20] =
我想使用 scipy.integrate.quad 对两个时移和频移的 Hermite 函数的乘积进行积分。 但是,由于包含大阶多项式,因此会出现数值错误。这是我的代码: import numpy a
我有一个程序应该使用牛顿法求出第 ** 个埃尔米特多项式的根,但运行该程序需要很长时间。我是 C 的新手,所以我不知道我的错误在哪里,或者这是否只是强制解决这个问题的本质。我也遇到了获取准确根的问题,
我的应用程序中有一个部分,用户可以在其中绘制内容。由于 touchesMoved 的刷新率很慢,如果用户快速绘制,线条就不会流畅。这就是我使用 Hermite 的原因。它为每个刷新率设置一个点,然后在
如题目所述:Hermite曲线如何转为Bezier曲线?具体来说,我正在寻找一种方法来转换使用 Hermite 插值的 Microsoft XNA Framework 的 Curve 类,以使用 Wi
我正在尝试使用 Cubic Hermite Splines 绘制图表。我从这个 interpolation methods 页面获取了执行此操作的简单代码。 这是我的代码: private float
我将 Hermit Reasoner 与 OWL-API 5 一起使用,如下所示: OWLOntologyManager manager= OWLManager.createOWLOntology
我正在尝试编写一种方法,随着时间的推移使用开始时的加速和结束时的减速(缓出/缓入)从 0 到 x(一维对象的位置)进行插值,唯一的约束是 提供总时间 ,以及 加减速持续时间 .运动应该复制惯性效应,我
我尝试从 Reasoner (hermit 1.3.8.4) 和 OWLApi (3.4.10) 检索属性断言。在这张图片中,我想检索“isGrandfather Sandro,isGrandfath
我正在尝试创建 HermiT Reasoner 的实例,但控制台继续显示异常“noSuchMethodError”。 特别是这是来自 java 控制台的错误: Caused by: java.lang
如何使用 HERMIT Reasoner 1.3.8 在 Java 中执行 SPARQL 查询?我正在使用 owlapi 4.2,并且我已经使用以下方式加载了 HERMIT 推理机: OWLReaso
我必须缩小图像并在浏览器中将它们转换为 jpeg。为此,我一直在使用一个名为 Hermite-resize 的 javascript 调整大小函数。 这很好用。在调整了几百张图片的大小后,我发现每隔一
我们有一个本体,但我们需要使用推理机 HermiT 来推断给定表达式的情感。我们不知道如何在 python 中使用和实现推理机,我们在互联网上也找不到很好的解释。我们发现我们可以为此使用 sync_r
我是一名优秀的程序员,十分优秀!