问题标签 [cubic]
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.
cuda - CUDA:CUDA 中的一维三次样条插值
我正在制作医学成像设备。我想用 CUDA 来制造更快的设备
我从 CCD 接收 1024 大小的一维数据 512 次。在我执行 IFFT 之前,我必须将高性能插值算法(如三次样条插值)应用于每个 1024 大小的数据(然后 1d 插值 512 次)。
是否有任何 CUDA 库来执行三次样条插值?(我发现有一个库,但它是针对 2 或 3 维图像的。由于我需要执行其他复杂的过滤功能,我需要全局内存上的数据,而不是纹理内存上的数据。)
是否有任何 NUFFT(非统一快速傅里叶变换)库(不需要为 CUDA 编写)?我在想,如果我有 NUFFT 功能,我就不必分别进行插值和 IFFT,这可以制造更快的设备。
c++ - 在三次贝塞尔曲线上找到给定 X 的 Y?
我需要一种方法,允许我在给定 x 坐标的情况下在三次贝塞尔曲线上找到 Y 坐标。
我遇到过很多地方告诉我将其视为三次函数,然后尝试找到根,我理解。然而,三次贝塞尔曲线的方程是(对于 x 坐标):
X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3
让我感到困惑的是(1-t)
值的添加。例如,如果我用一些随机数填充 X 值:
400 = (1-t)^3 * 100 + 3*(1-t)^2 * t * 600 + 3*(1-t) * t^2 * 800 + t^3 * 800
然后重新排列它:
800t^3 + 3*(1-t)*800t^2 + 3*(1-t)^2*600t + (1-t)^3*100 -400 = 0
我仍然不知道(1-t)
系数的值。(1-t)
当仍然未知时,我应该如何求解方程?
python - 用 Python 进行样条插值
我编写了以下代码来执行样条插值:
但我得到:
在interpolate.py
任何帮助,将不胜感激。
c++ - C++:求解三次方程
这个网站解决三次方程,并有它使用的方程
我编写了这个函数来获得相同的结果,但它不起作用
可能是什么问题,我有什么遗漏吗?
更新:
例如,使用这些值
判别式小于零,所以r13是nan
但是上面提到的网站和我测试过的几个在线求解器找到了三个根源
都是实数
matlab - 通过三次样条插值 3d 矩阵
Map 提供了一个 185 x 250 x 3 的矩阵 Map,表示图像和“图像坐标”xi 和 yi。插值坐标 5 < x < 180 和 5 < y < 245,均以间距 0.1 均匀分布。首先在一个方向上对矩阵 Map 的 3 个大小为 185 x 250 的块中的每一个进行插值,然后在另一个方向上插值,以生成 1751 x 2401 x 3 矩阵 InterpolatedMap。将任何大于 1 的值设置为 1,将任何小于 0 的值设置为 0。使用 image 命令将原始图像 Map 与 InterpolatedMap 中的图像进行比较。
我生成了代码 MyCubicInterpolation,它以下列方式工作,xi = linspace(-1,1,150); zi = sin((pi.*xi)/2);
x = linspace(-1,1,200);
y = MyCubicSpline(xi,zi,x);
现在我不明白哪个是我的第一个方向,哪个是我的第二个方向,我应该从三个中选择整个块 Map(:,:,1)。总之我无法理解接下来的步骤。
matlab - 如何使用 Matlab(或 Excel)在 3D 中插入一组点
我有 19 个点(x、y、z 值),它们可以连接起来产生一条曲线(非常有角度)。
有没有办法在平滑数据后输出 100 个点(x、y、z 值),其中包括原始的 17 个点?
我的目标是简单地制作线条,看起来不那么有棱角。我不想偏离原始数据点。我不只是想拟合曲线,我还想要一组 x、y、z 值,它们构成尽可能多的点。
如果获取我的数据有帮助,那就是……
[更新]:这是我的所有数据(东向、北向和地面高程)。我已经对其进行了操作,以便可以使用它来绘制图表并将数据收集到一长串 X、Y、Z 点的列表中。
textures - Ogre3D 中的立方体纹理和像素格式
在 Ogre 材质文件中,立方体纹理定义为:
这是否意味着无法像普通纹理那样设置像素格式?
matlab - 插值上的任意采样
我有任意点(8192,4678,1087.2,600,230.4 等),我想在其他定义点(100,500.3,802,2045,4399.5125 等)进行插值和重新采样。
我尝试了三次样条插值,但它使用的是稳定的步进采样,并且根据步进采样,它可能无法生成我需要的值。
你会怎么做?
bezier - 将具有 N 点的贝塞尔曲线转换为许多三次贝塞尔曲线
我有大约 48 个 ctrl 点的贝塞尔曲线,我想将其转换为许多三次贝塞尔曲线......任何算法、数学理论或只是一个链接都可能有帮助:) ??
gpu - 在 GPU 上绘制与分辨率无关的三次贝塞尔曲线(Blinn/Loop)
基于以下资源,我一直在尝试在 GPU 上实现与分辨率无关的三次贝塞尔渲染:
但正如 Curvy Blues 网站所述,其他两个网站上的文件存在错误。Curvy Blues 让我查看评论,但我似乎无法找到这些评论。另一个论坛告诉我同样的情况,我不记得那个论坛是什么。但肯定有一些我想念的东西。
无论如何,我试图重新生成正在发生的事情,但我无法理解根据变换坐标组合的行列式计算判别式的部分。
所以我有原始坐标,我把它们放在一个 4x4 矩阵中,用 M3 矩阵变换这个矩阵并得到 C 矩阵。然后我从 C 矩阵中的坐标创建 3x3 矩阵并计算行列式,然后可以将它们组合以创建有助于我找到根的二次方程的 a、b 和 c。
问题是,当我完全这样做时:判别式不正确。我清楚地输入了蛇纹石的坐标(对称的,但正确的蛇纹石),但它说它是一个尖点。当我使用 wxMaxima 自己计算它,推导一阶和二阶,然后计算叉积,简化为二次方程时,当我输入相同的坐标时,该方程的判别式似乎是正确的。当我强制代码使用我自己的判别式来确定它是否是蛇形时,但我使用行列式来计算进一步的 k,l,m 纹理坐标,结果也是不正确的。所以我认为行列式中一定有错误。
谁能帮我解决这个问题?