How to find projection plane for 3d points

Started by
3 comments, last by mmakrzem 8 years, 8 months ago

I have a set of points defined in 3D space. I’d like to find the optimal plane for which I could project all of these 3d points onto and have them “nicely” spaced out. I realize that there may not be an optimal solution if all my points are poorly spatially distributed. As a simple example, imagine we have points (illustrated as white dots below) such that they encircle a sphere.

[attachment=28178:points.jpg]

I’d like to find the cross section plane that is illustrated in the image below. Could someone suggest how we could find this plane given only the x,y,z coordinates of the 3d points?

[attachment=28177:plane.jpg]

Advertisement

You can try using Newell's plane building algorithm:

http://box2d.org/2014/01/troublesome-triangle/

http://cs.haifa.ac.il/~gordon/plane.pdf

Thanks, I'll give that a try

"Nicely" is a bit informal, but if somehow maximizing the area of the distances between the points is important, then two approaches that come to mind:

- Use PCA to compute the direction of maximum spread and use the axis information to form the plane, e.g. https://en.wikipedia.org/wiki/Principal_component_analysis and http://setosa.io/ev/principal-component-analysis/

- First compute the diameter of the 3D point set, http://www.tcs.fudan.edu.cn/rudolf/Courses/Algorithms/Alg_ss_07w/Webprojects/Qinbo_diameter/intro.htm to find the first direction for one of the axes of the plane, and then form the second axis by finding the diameter of the 2D point set that is formed by projecting along the first chosen axis.

These might give different kinds of planes compared to Newell's method.

I've never heard of PCA. I'll look into it. Thanks!

This topic is closed to new replies.

Advertisement