问题标签 [catmull-rom-curve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3733 浏览

java - 适用于 Android 的 catmull-rom 样条曲线

我正在尝试找到一种在 android 平台上实现 catmull-rom 样条的方法,目的是通过 n 点平滑地绘制一条线。理想情况下,我可以通过 Path 和它的cubicTo 方法来调整三次贝塞尔曲线,正如这个线程中提到的那样:How do I draw a curve through tree points in Android?

不幸的是,我无法跟踪那里的实现,所以我希望那里有人已经这样做了,并且可以分享几行示例代码。

谢谢!

0 投票
1 回答
567 浏览

embedded - 计算样条曲面上的点

我正在研究一种在嵌入式系统上运行的控制算法。我的编程语言是 C,系统在内存和处理能力方面将受到非常严格的限制。

我在三维空间中有几个(大约 10 个)参考点。这些通常是静态的,但会偶尔更改。我想拟合一个样条曲面,使其通过所有这些点,然后有一个函数,对于给定的输入向量(x, z)返回距离y到平面y = 0的距离。

我认为这是一个需要分两部分解决的问题:1) 每当参考点发生变化时,都会计算一些新的系数,以及 2) 将系数插入一个函数,该函数返回给定(x, z)的y。(只有 2 个需要“实时”发生。)

我在网上对此进行了一些研究,但在数学上遇到了困难,而且很多材料都是针对计算机图形学的。我什至不确定我需要什么类型的样条;NURBS 和 Catmull-Rom 似乎都是相关的。最后,关于我的样条边缘的形状:由于我的输入向量来自有界的传感器读数,我并不真正关心样条在该边界之外做什么。

我将非常感谢一些帮助或相关材料的指针,任何伪代码片段将不胜感激。

0 投票
2 回答
2335 浏览

math - 点不等距的三次插值

我正在尝试创建点列表的插值。

我有一些坐标点(ti,xi),其中 ti 是时间戳,xi 是相关值。我想创建一个通过这些点的函数,并允许我找到与位于区间中的通用 t 对应的 x 值。

我想用三阶插值对它们进行插值。我见过像 catmull-rom 插值这样的东西,但它只有在点 xi 等距时才有效。

例如这里http://www.mvps.org/directx/articles/catmull/你可以发现时间戳点是等距的,就像这里http://www.cs.cmu.edu/~462/projects/assn2 /assn2/catmullRom.pdf

有什么方法可以应用非规则点的三次插值?

0 投票
2 回答
5061 浏览

javascript - 平滑的 svg 路径连接

我有一组随机点,想用 raphaeljs 创建一个平滑的 svg 形状。为了连接点,我使用了 catmull-rom-spline。问题是路径闭合的点并不平滑。

这是我的项目中的一个示例路径:

我还创建了一个 jsfiddle:http: //jsfiddle.net/ry8kT/

这可以通过 catmull 曲线实现吗?如果没有,你能给我一个例子如何得到一个完全平滑的形状吗?

非常感谢,麦克法兰

0 投票
5 回答
29216 浏览

curve - 没有尖点和自相交的 Catmull-rom 曲线

我有以下代码来计算四个控制点之间的点以生成 catmull-rom 曲线:

这很好用,但我想创建一些我认为称为向心参数化的东西。这意味着曲线将没有尖点和自相交。如果我将一个控制点真正靠近另一个控制点,曲线应该变得“更小”。我已经用谷歌搜索了我的眼睛,试图找到一种方法来做到这一点。有人知道怎么做吗?

0 投票
1 回答
905 浏览

3d - 将 Beziér 控制点转换为 Catmull-Rom 控制点

我正在做一些平滑的 3D 相机转换,并使用一个小型库来处理我的相机转换。

不幸的是,它只执行 Catmull-Rom 转换。我还使用了出版物中的一些信息,他们使用贝塞尔曲线进行过渡。

所以我的问题是:给定一组贝塞尔控制点。如何将它们转换为 Catmull-Rom 点?

如果可能的话,我将能够使用这个库。否则,我将不得不从头开始实现贝塞尔曲线。

更新
我应该提到控制点本身很好。曲线不必完全相同。只需要相同的行为。

0 投票
1 回答
445 浏览

ruby - Ruby 中的 Catmull-Rom 插值

我有一个点列表,我想在它们之间画一条平滑线。我正在使用 RVG 库进行绘图,所以如果我能从我的观点中得到一个 SVG 字符串,我会很高兴。搜了一圈,发现Catmull-Rom大概就是用的算法。

在 Kamelopard 和 Rubyvis 库中找到了一些实现,但从我的点列表中无法理解如何使用它们。

所以,问题是,我如何获取我的 (x,y) 点数组并从中获得 Catmull-Rom 插值 SVG 曲线?

0 投票
1 回答
2050 浏览

animation - 关键帧插值 catmull rom

我知道有很多方法可以做到这一点。我对用于动画目的的 catmull rom 特别感兴趣。但是,我很难理解它。我访问过的所有网站都将关键姿势确定为点。然而,关键姿势也可以包含关节角度。这些在插值时是否与点相同?有没有学习catmull rom的好网站?

0 投票
1 回答
2793 浏览

c# - XNA CatmullRom 曲线

我需要对我正在尝试的技术进行一些澄清。我正在尝试将实体从 A 点移动到 B 点,但我不希望实体沿直线移动。

例如,如果实体位于 x: 0, y:0 并且我想到达点 x:50, y: 0,我希望实体沿曲线行进到目标,我会想象它的最大距离将离开是 x:25 y:25 所以它在 X 上向目标移动,但在 y 上已经远离目标。

我研究了几个选项,包括样条曲线、曲线,但我认为可以完成这项工作的是 CatmullRom 曲线。我有点迷茫怎么用?我想知道每帧将我的实体移动到哪里,而不是函数返回的是插值。我会很感激一些关于如何使用它的指导。

如果有任何我错过的可能更容易的替代方法,我也会很感激听到它们。

编辑:

为了展示我如何获得曲线:

最终的想法是我即时生成这些点,但我现在只是想解决它。

0 投票
0 回答
131 浏览

iphone - 使用 ccTouchesMoved 在预定义的路径上移动精灵

我试图通过移动触摸在我定义的路径上移动精灵。但我无法与 cocos2D 中预定义的 CCCatmullRomBy Action 完全相同。请建议我该怎么做。

为了更好地理解,让我们假设一辆有路的汽车,我想在路上使用触摸来移动汽车。这条路是曲折的,就像 CCCatmullRomBy 一样,张力为 0

先感谢您。