首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断3D打印上的点位于平面上还是位于曲线上?

如何判断3D打印上的点位于平面上还是位于曲线上?
EN

Stack Overflow用户
提问于 2020-10-25 22:09:13
回答 1查看 74关注 0票数 1

我有一个使用matploblib轴3D生成的数据的3D散点图。我需要决定它是在平面上还是在曲线上。我正在试图理解视觉上的差异,这将表明平面或曲线。我的猜测是,如果沿着很大范围的z值存在点,那么它就位于曲线上,因为如果它位于平面上,这意味着这些点只分布在平坦的表面上。即使我的猜测是正确的,但由于排除了唯一的另一种可能性,我才是正确的,那么如果数据位于曲线上,我如何具体判断呢?

EN

回答 1

Stack Overflow用户

发布于 2020-10-27 17:33:36

如果平面倾斜,您还会发现一个很大范围的z值。

假设您的3D points在nx3数组中,您可以使用以下公式计算适合它们的平面:

代码语言:javascript
复制
centroid = np.mean(points, axis=0)
_, eigenvalues, eigenvectors = np.linalg.svd(points - centroid, full_matrices=False)
normal = eigenvectors[2]
dispersion = eigenvalues[2]

最接近散乱点的平面由点(centroid)及其normal向量定义。

然后,根据法线轴上的dispersion值,您可以确定它是足够低(点位于平面上)还是太高(它们不位于平面上)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64524623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档