如何插值三维坐标

2024-04-29 10:45:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有x,y,z格式的数据点。它们形成一个封闭流形的点云。如何使用R-Project或Python插值它们?(如多项式样条)


Tags: 数据project格式流形样条插值
2条回答

这取决于这些点最初代表的是什么。仅仅有一个点数组通常不足以从中导出原始流形。你需要知道哪一点在一起。在

最常见的底层边界表示(“brep”)是一组三角形。这就是OpenGL和Directx的输入。我写了一个Python software,它可以将STL格式的三角形网格转换为PDF图像。也许你可以根据自己的目的来调整。插值一个三角形通常是不必要的,但做起来相当麻烦。在两个原始点之间各创建三个新点。这三个点形成一个内三角形,曲面的其余部分形成三个三角形。这样你就把一个三角形变成了四个三角形。在

如果这些点是样条曲线曲面面片的控制点(如NURBS,或Bézier surfaces),则必须知道哪些点一起构成面片。因为这些是参数化曲面,一旦知道控制点,就可以确定曲面上的所有点。下面是Bézier曲面的函数。参数u和v是曲面的参数坐标。它们沿面片的两个相邻边从0到1。控制点是k帴ij。在

formula of Bézier patch

B函数是每个控制点的权函数

weight functions

假设您要用10x10个点的网格来近似Bézier曲面。要做到这一点,您必须计算函数p对于在10个步骤中从0到1的u和v(生成步骤很容易用numpy.linspace完成)。在

对于每个(u,v)对,p返回一个三维点。在

如果您想可视化这些点,可以使用matplotlib中的mplot3d。在

你所说的“紧凑流形”是指像轨迹或嵌入3d的曲面这样的低维函数吗?对于R中的曲面问题,您有几个备选方案,具体取决于您希望的“参数化”或“非参数化”。各种类型的回归样条可以应用在估计平均值f(x,y)的框架内,如果这些值是“紧密”间隔的,则可以得到相对准确和简单的概要估计。有几种非参数化方法,如包“locfit”、“akima”和“mgcv”。(我真的不确定如何从统计学上估计三维空间中的一维流形。)

编辑:但如果我真的想看到一个三维分布,并弄清楚它是参数曲线还是轨迹,我会包装:rgl和只需在可旋转的三维框架中绘制。在

如果你试图形成一个凸壳(插值这个词可能是错误的选择),那么我知道有2-d解,并且怀疑搜索也会找到3-d解。构建正确的搜索策略将取决于目前为止2条评论所反映的细节。我推测,如果你想使用回归方法来创建边界,那么可以尝试将低阶和高阶统计数据建模为(x,y)的函数,比如1和99%。有一个分位数回归软件包,rogerkoenker的“rq”得到了很好的支持。在

相关问题 更多 >