# The "real" angle between two triangular surfaces

• I
• mbouksim
In summary, The conversation discusses the method of calculating the angle between two triangular surfaces by extracting the normals and using the dot product. The problem with this method is that it does not distinguish between convex and concave edges, resulting in incorrect angle values. To accurately calculate the angle, one would need to take into account the relative location of the faces and use vector algebra to find the unit normal vector. An example is given of a triangulated mobius strip where the angle between two adjacent triangular faces is more than 180 degrees.
mbouksim
Hello everyone,
i'm new to the forum so hope it is the right place for my question :)
i need to know the angle between two triangular surfaces, the easiest way would be extract the normal for each surface(u,v) and then using the dot product we can easily compute the cosine for the angle I'm looking for.

the problem with this method is that my angle (let's call it [the]) ranged between [0°,360°] and the cosine is symmetric, what i mean is how to know the real angle when the cos[the]=1/2 (the=60° or 300°).

Last edited by a moderator:
Not clear on your method, but the internal angle of a convex polyhedron (without any cavities) will always be less than 180 degrees, so for the example that you gave, the 300 degrees would be invalid. for a convex polyhedron if the angle you are calculating is one of the ones that form the cavity and has an internal angle of more than 180 degrees then that gives you the 300 degrees choice for your example.

a1call said:
Not clear on your method, but the internal angle of a convex polyhedron (without any cavities) will always be less than 180 degrees, so for the example that you gave, the 300 degrees would be invalid. for a convex polyhedron if the angle you are calculating is one of the ones that form the cavity and has an internal angle of more than 180 degrees then that gives you the 300 degrees choice for your example.
thanks for your answer :) and sorry i didn't explain well my problem the polyhedron is just an example but in real I'm working a 3D triangulare meshes (for humans, animals, furniture ...) where the angle between two adjacent triangle could easily be more than 180 degrees

If you can measure the angles between the 2 normal lines, why not use that to calculate the angles as:
angle= 180 degrees - (the-angle-between-the-two-normal-line)
internal angles of any 4 edged polygon add up to 360 degrees.

ETA Just realized the same problem can exist in a concave edge since the normal angle would form outside the polyhedron.
it seems to me if you can not know if the edge between the two faces is concave or convex then there is no way to distinguish between the 2 cosine values. however there has to be a way to know the concave/convex status of the edge between the two faces.

Last edited:
mbouksim said:
I'm working a 3D triangulare meshes (for humans, animals, furniture ...) where the angle between two adjacent triangle could easily be more than 180 degrees

Perhaps I don't understand what angle you want to compute, but I don't see any instances in the rabbit model where two adjacent triangular surfaces have an angle of more than 180 deg between them. Can you show a figure where two adjacent triangular faces have an angle of more than 180 degrees between their normals ? Would this occur when we try to assign the directions of normals to a triangulated mobius strip ?

mfb
Are you familiar with vector algebra?

You could create position vectors for each vertex and then for any given face triangle subtract the three vertex vectors to get two vectors in the same plane as the face triangle. From there a cross product will give you the normal vectors (then normalize it to get the unit normal vector) you seek.

I think your figure in the first case is a regular polyhedron so that a sphere can be drawn around it with all vertices touching the surface of the sphere meaning they are all equidistant from the center of the sphere so you could choose the center as the point of origin for all the vertex position vectors mentioned earlier.

In the rabbit figure any edges in the concave areas such as under the chin or inward caved back would form an internal angle of more than 180 degrees between the joining faces.

I think if you compute both the dot product of the normals and also the cross product of the normals then you can deduce the angle between the surfaces.

member 587159 and jedishrfu
a1call said:
In the rabbit figure any edges in the concave areas such as under the chin or inward caved back would form an internal angle of more than 180 degrees between the joining faces.
So you want the angle also depend on the question what is "outside" and "inside"? This is not possible with the angles alone, you also have to take the relative location of the faces into account.
Assuming all normal vectors face outwards (or all inwards): take the difference between a point on one triangle and a point on the other triangle. Take the scalar product with the difference of the normal vectors. The sign should tell you which case you have.

Thanks for all this answer :) and I'm sorry for the delay i was having problem with my internet connection :/
Stephen Tashi said:
Perhaps I don't understand what angle you want to compute, but I don't see any instances in the rabbit model where two adjacent triangular surfaces have an angle of more than 180 deg between them. Can you show a figure where two adjacent triangular faces have an angle of more than 180 degrees between their normals ? Would this occur when we try to assign the directions of normals to a triangulated mobius strip ?
here is an exemple of what i need to compute

for example i need to compute the outsider angle between the two surface F1, and F2 the angle is obviously 270°, but computing the normal to each triangle and then deducing the angle it returns 90°

jedishrfu said:
Are you familiar with vector algebra?

You could create position vectors for each vertex and then for any given face triangle subtract the three vertex vectors to get two vectors in the same plane as the face triangle. From there a cross product will give you the normal vectors (then normalize it to get the unit normal vector) you seek.

I think your figure in the first case is a regular polyhedron so that a sphere can be drawn around it with all vertices touching the surface of the sphere meaning they are all equidistant from the center of the sphere so you could choose the center as the point of origin for all the vertex position vectors mentioned earlier.

i'm not so familiar with vector algebra, but i'll try to implement the method you proposed thank you :)

a1call said:
In the rabbit figure any edges in the concave areas such as under the chin or inward caved back would form an internal angle of more than 180 degrees between the joining faces.
sorry i didn't give a good explanation of my problem I'm looking for the outside angle like the picture above you can see that the angle between the two triangle F1 and F2 is equal to 270°

Stephen Tashi said:
I think if you compute both the dot product of the normals and also the cross product of the normals then you can deduce the angle between the surfaces.
I hope I'm not asking too much but can you give me more details on how to combine dot product and the cross product to deduce the angle

mfb said:
So you want the angle also depend on the question what is "outside" and "inside"? This is not possible with the angles alone, you also have to take the relative location of the faces into account.
Assuming all normal vectors face outwards (or all inwards): take the difference between a point on one triangle and a point on the other triangle. Take the scalar product with the difference of the normal vectors. The sign should tell you which case you have.
as showing in the above image I'm looking for the outside angle, i used a predefined function in MATLAB to make sure that all my normal vectors are outwards.
if it is not to much to ask could you explain to me how to combaine the difference between points, scalar product ?

mbouksim said:
as showing in the above image I'm looking for the outside angle, i used a predefined function in MATLAB to make sure that all my normal vectors are outwards.
if it is not to much to ask could you explain to me how to combaine the difference between points, scalar product ?
Does a specific example help?

Let's say you have point A(4,5,3) at F1 with normal vector v=(1,0,0), and point B(3,8,8) at F2 with normal vector w=(0,1,0).
Then (B-A) = (-1,3,3), and v-w=(1,-1,0).
Scalar product: (B-A)*(v-w)=1*(-1) + (-1)*3 + 0*3 = -4.
It is negative, this should correspond to an angle larger than 180°,

## 1. What is the "real" angle between two triangular surfaces?

The "real" angle between two triangular surfaces refers to the angle formed by the intersection of the two surfaces, taking into account the curvature and shape of both surfaces.

## 2. How is the "real" angle between two triangular surfaces different from the traditional angle?

The traditional angle between two surfaces is measured by drawing a straight line between the two points of intersection. However, this does not take into account the shape and curvature of the surfaces, which can result in a misleading angle measurement. The "real" angle takes into account the actual intersection of the surfaces.

## 3. What factors affect the "real" angle between two triangular surfaces?

The "real" angle between two triangular surfaces is affected by the shape, curvature, and orientation of both surfaces. It can also be influenced by the relative positions of the points of intersection.

## 4. How is the "real" angle between two triangular surfaces calculated?

The "real" angle between two triangular surfaces is typically calculated using mathematical equations and formulas that take into account the various factors mentioned above. It can also be calculated using specialized software or computer programs.

## 5. Why is it important to consider the "real" angle between two triangular surfaces?

Understanding the "real" angle between two triangular surfaces is important in many fields, such as engineering, construction, and geology. It allows for more accurate and precise measurements and calculations, which can lead to better designs and more efficient processes.

• General Math
Replies
12
Views
2K
• General Math
Replies
16
Views
2K
• General Math
Replies
16
Views
1K
• General Math
Replies
1
Views
1K
• General Math
Replies
3
Views
2K
• Linear and Abstract Algebra
Replies
16
Views
2K
• Classical Physics
Replies
10
Views
945
• Linear and Abstract Algebra
Replies
14
Views
1K
• General Math
Replies
5
Views
2K
• General Math
Replies
16
Views
2K