生成给定坐标集所在平面/曲面的函数

发布于 2024-07-21 05:06:31 字数 209 浏览 6 评论 0原文

这也与数学有关。 但这在计算中也很有用。

假设您有 10 个坐标。 (x1,y1)(x2,y2)..... 在 2D 空间中。 (即在 XY 平面上)。 我们能找到一条穿过每个坐标的平滑曲线吗?

在扩展问题时,如果空间是 3D,那么我们能否找到穿过给定空间坐标集的光滑表面的方程?

是否有任何库(任何语言)\工具来执行此类计算?

This is something related with Mathematics as well. But this is useful in computing as well.

Lets say you have 10 coordinates. (x1,y1)(x2,y2)..... in 2D Space. (i.e on a X-Y Plane). Can we find a single smooth curve going across the each coordinate.

While expanding the question, If the space is 3D, then can we find an equation of a smooth surface that going across a given set of spacial coordinates?

Are there any Libraries (Any language) \ tools to perform such calculations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

最美的太阳 2024-07-28 05:06:31

您应该寻找的是一些实现 NURBS(或非均匀有理 B 样条曲线)的库。 这将解决 2d 和 3d 中的问题,因为 2d 只是 3d 的特殊情况。

粗略地说,您对实际方程不感兴趣,您只对用平滑曲线或曲面获得近似点感兴趣。 这是通过在 2d 或 3d 空间中查找“控制点”来完成的,这些“控制点”与 B 样条基函数相乘。 NURBS 库将为您完成此操作。

干杯!

编辑:

看看 这个< /a>

What you should be looking for is some library implementing NURBS (or Non Uniform Rational B-Splines). This will solve your problem in both 2d and 3d, since 2d is just a special case of the 3d.

Roughly speaking, you are not interested in the actual equation, you are only interested in getting the points approximated with smooth curves or surfaces. This is done by finding "control points" in 2d or 3d space, which are multiplied with B-spline base functions. A NURBS library will do this for you.

Cheers !

Edit:

Have a look at this one

浮萍、无处依 2024-07-28 05:06:31

您始终可以通过这些点拟合 10 阶多项式。 但这不一定是您想要做的 - 通过一系列样条线拟合平滑曲线将为您提供更好看的结果。 维基百科上的曲线拟合文章为您提供了各种选项的良好概述。

you can always fit an order-10 polynomial through the points. that's not necessarily what you want to do, though - fitting a smooth curve via a series of splines will give you a better-looking result. the curve-fitting article on wikipedia gives you a good overview of the various options.

小伙你站住 2024-07-28 05:06:31

在 2D 情况下,您要求进行曲线拟合。 这实际上存在于 Excel 中,您可以在其中绘制点(如果列出了 x 和 y,我通常使用 XY 散点图),然后右键单击曲线。 选择添加趋势线。 在那里,您可以选择要适合的函数类型,并且可以要求 Excel 将其显示在图像中(名为“选项”的选项卡,选中“在图表上显示方程”框)。 又好又快。

否则,您可以使用 matlab 并使用 lsqr(最小二乘法)。 如果您想找到最能描述您的数据的多项式,您可以使用 polyfit 函数。 它使用最小二乘法,但返回系数。 Matlab有一整套其他算法用于求解/寻找线性方程组的“最佳”近似值。 我提到 lsqr 是因为如果您没有 matlab,它是最简单的实现方式之一。 另一方面,它用于求解线性方程组 - 我对您的数据一无所知。

In the 2D case you are asking for curve fitting. This actually exists in excel, where you plot your points (I usually use XY scatter if you have x and y listed) and then right-click on the curve. Select Add Trendline. There you can choose which kind of function you want to fit to and you can ask excel to display it in the image (Tab named Options, check the box "Display equation on chart"). Nice and quick.

Otherwise you can use matlab and use the lsqr (least square method). If you want to find the polynomial closest that best describes your data you could use the polyfit function. It uses the least square method, but returns coefficients. Matlab has a whole set of other algorithms for solving/finding "best" approximations to systems of linear equations. I mention lsqr because it is one of the simplest to implement yourself if you don't have matlab. On the other hand it is for solving sets of linear equations - I don't know anything about your data.

终难遇 2024-07-28 05:06:31

看看

搜索“样条插值库”可能会给出一些有用的实现提示。

Have a look at splines

Searching for 'spline interpolation library' might give some useful hints for implementations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文