On 28/04/2016 at 15:23, xxxxxxxx wrote:
I have a list with all the normals of all the polygons of an object, that I calculated with this code:
for p in polygons:
a,b,d = points[p.a],points[p.b],points[p.d]
normals.append((b - a).Cross(d - a).GetNormalized())
With this information available, how can I check if two faces are:
- roughly facing each other
- roughly facing in the same direction
- roughly facing opposite directions
On 29/04/2016 at 11:00, xxxxxxxx wrote:
These are the possible cases. How can I detect them all? Anyone?
On 29/04/2016 at 12:43, xxxxxxxx wrote:
You can compute the angle between the normal vectors of the polygons using the dot product.
On 29/04/2016 at 12:50, xxxxxxxx wrote:
I know that, Niklas.
But in my image, for example, the angles between the normals in the second and third case is the same: around 180°
How can I differentiate them?
On 29/04/2016 at 15:45, xxxxxxxx wrote:
I guess I found a way.
If the angle between the normal is less than 90°, they are pointing in the same general direction.
If the angle is between 90° and 180°, I check if a point of one of the polygons(the center of a polygon) is in front of the other polygon or not.
If it is, the polygons are facing each other.
if not, they are facing in opposite directions.
Am I right?
On 30/04/2016 at 12:39, xxxxxxxx wrote:
Just to let everyone know that it worked