我在3d空间中有一组点,我希望能够对最适合它们的形状进行分类 - 立方体,球体,圆柱体,平面(平面)等。
我看过监督/机器学习,但因为我需要先生成一个不太合适的大型训练数据集。
我的梦想解决方案是一个具有奇妙功能的java库,如:
public enum ShapeType {
CUBE,
SPHERE,
CYLINDER,
PLANAR
}
public ShapeType CategorizeShapeFromPoints( 3DPoint[] points )
然而,任何和所有帮助将不胜感激。感谢
答案 0 :(得分:0)
答案 1 :(得分:0)
答案取决于您对称性的定义。我用分子对称性做了很多这方面的工作。因此,正如@MBo所说,时刻是一个有用的开始,但只有在点均匀分布的情况下(如果在任何地方都有一个集中点,它会扭曲时刻分析。具有等间距点的地球和极点上的集合仍然是一个球体(因为它不是对称的)。
如果您担心某个点是否在另一侧有合作伙伴,那么您将不得不应用旋转和镜像。您提到的对象有明确定义的对称组。
您是否有表面(例如三角网或实心图)也很重要。我想,除非你有更明确的想法,否则没有人能给出明确的答案。