0

I'm trying to understand how to map a plane in 3-dimensional (x,y,z) space to a 2-dimensional coordinate system. The plane will have ≥3 vectors, but is not necessarily a quadrangle. I have the coordinates for vectors that constitute the vertices of the plane, and the facing normal of the vertices as a vector as well.

If it helps, this is with regards to a mesh in a computer program, but I'm trying to better understand the actual mathematics behind it as I'm working through this problem.

For instance (and unfortunately this changes with each iteration but is a fine sample), let's take the vector set:

{ (-14.3, 10.7, -3.3), (-14.9, 11.2, -3.9), (-14.7, 11.2, -3.9), (-15.3, 11.7, -3.2) }

And a normal vector of:

(-15.2, 10.9, -3.2)

What I need is to project everything into a coordinate system that removes a dimension (x, y) or (x, z) or (u, v) or what have you. The scale, or the actual coordinate values aren't particularly important as the requirement in the end is to be able to order the coordinates in a clockwise fashion. I've looked at a few resources (even listed a couple of SE resources below) that don't seem to get exactly where I need to go. My mathematics skills are decent but not stellar, though I can usually pick things up fairly reasonably. Trying to determine if there's some matrix math or dot product thing involved here, but it seems that most of what I find works okay for a single point but isn't really geared toward creating a plane that all points lie on with only 2-dimensional values.

Additional SE resources checked:

3D projection on a 2D plane ( weak maths ressources )
Mapping UV coordinates to a plane in 3D space
https://stackoverflow.com/questions/18663755/how-to-convert-a-3d-point-on-a-plane-to-uv-coordinates

  • You don’t really need to project anything; you just need a coordinate system for the plane. Pick a 3-D coordinate system in which the origin is on the plane and and the first two axes are parallel to the plane. The third axis can be anything that’s not parallel to the plane. Transform to this coordinate system, then drop the last coordinate. – amd May 28 '20 at 02:00
  • @amd - how would I go about that? I can choose any one vertex as the origin, but then how do calculate the coordinates of the other to ensure that one axis is always a value of 0 (or 1, I suppose)? – Jesse Williams May 28 '20 at 02:37

0 Answers0