Skip to main content
GameDev.net gamedev.net
🔒 Locked

How to find projection plane for 3d points

Started by mmakrzem Jul 16, 2015 at 8:38 PM 3 replies 3.8k views
Original Post
mmakrzem
mmakrzem

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]

clb
clb

"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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.