Find reflex angle with 3 points and their plane normal
up vote
2
down vote
favorite
I have 3 points in 3D and I want to calculate $ABC$ angle, which could be reflex angle. I also know the normal of the plane they are in. Is there a way to calculate the angle?
EDIT:
Take a look at this picture. The two vectors create two angles one would be $a$ and the other $360 - a$. Now I also know the direction of normal between the two vectors. With that information how can I determine if they construct angle $a$ or $360-a$.
geometry angle
|
show 2 more comments
up vote
2
down vote
favorite
I have 3 points in 3D and I want to calculate $ABC$ angle, which could be reflex angle. I also know the normal of the plane they are in. Is there a way to calculate the angle?
EDIT:
Take a look at this picture. The two vectors create two angles one would be $a$ and the other $360 - a$. Now I also know the direction of normal between the two vectors. With that information how can I determine if they construct angle $a$ or $360-a$.
geometry angle
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55
|
show 2 more comments
up vote
2
down vote
favorite
up vote
2
down vote
favorite
I have 3 points in 3D and I want to calculate $ABC$ angle, which could be reflex angle. I also know the normal of the plane they are in. Is there a way to calculate the angle?
EDIT:
Take a look at this picture. The two vectors create two angles one would be $a$ and the other $360 - a$. Now I also know the direction of normal between the two vectors. With that information how can I determine if they construct angle $a$ or $360-a$.
geometry angle
I have 3 points in 3D and I want to calculate $ABC$ angle, which could be reflex angle. I also know the normal of the plane they are in. Is there a way to calculate the angle?
EDIT:
Take a look at this picture. The two vectors create two angles one would be $a$ and the other $360 - a$. Now I also know the direction of normal between the two vectors. With that information how can I determine if they construct angle $a$ or $360-a$.
geometry angle
geometry angle
edited Oct 31 at 9:36
asked Oct 31 at 8:05
Lion King
135
135
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55
|
show 2 more comments
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55
|
show 2 more comments
2 Answers
2
active
oldest
votes
up vote
0
down vote
You can use scalar product
$$
langle mathbf{u},mathbf{v}rangle = lVert mathbf{u}rVert lVert mathbf{v}rVert cosalpha
$$
where $alpha$ is the angle between $mathbf{u}$ and $mathbf{v}$.
Hence
$$
alpha=arccos frac{langle mathbf{u},mathbf{v}rangle}{lVert mathbf{u}rVert lVert mathbf{v}rVert}
$$
In your case
begin{align}
mathbf{u}=A-B\
mathbf{v}=C-B
end{align}
Notice that you'll get $alphale180°$.
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
|
show 1 more comment
up vote
0
down vote
accepted
I finally found a solution for this case in here.
The part that is relevant for this question:
When your vectors are not placed arbitrarily, but lie within a plane with a known normal vector $n$. Then the axis of rotation will be in direction $n$ as well, and the orientation of $n$ will fix an orientation for that axis. In this case you can calculate the angle via:
$$dot = x_1x_2 + y_1y_2 + z_1z_2$$
$$det = x_1y_2z_n + x_2y_nz_1 + x_ny_1z_2 - z_1y_2*x_n - z_2y_nx_1 - z_ny_1*x_2$$
$$angle = arctan(det, dot)$$
One condition for this to work is that the normal vector n has unit length. If not, you'll have to normalize it.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You can use scalar product
$$
langle mathbf{u},mathbf{v}rangle = lVert mathbf{u}rVert lVert mathbf{v}rVert cosalpha
$$
where $alpha$ is the angle between $mathbf{u}$ and $mathbf{v}$.
Hence
$$
alpha=arccos frac{langle mathbf{u},mathbf{v}rangle}{lVert mathbf{u}rVert lVert mathbf{v}rVert}
$$
In your case
begin{align}
mathbf{u}=A-B\
mathbf{v}=C-B
end{align}
Notice that you'll get $alphale180°$.
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
|
show 1 more comment
up vote
0
down vote
You can use scalar product
$$
langle mathbf{u},mathbf{v}rangle = lVert mathbf{u}rVert lVert mathbf{v}rVert cosalpha
$$
where $alpha$ is the angle between $mathbf{u}$ and $mathbf{v}$.
Hence
$$
alpha=arccos frac{langle mathbf{u},mathbf{v}rangle}{lVert mathbf{u}rVert lVert mathbf{v}rVert}
$$
In your case
begin{align}
mathbf{u}=A-B\
mathbf{v}=C-B
end{align}
Notice that you'll get $alphale180°$.
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
|
show 1 more comment
up vote
0
down vote
up vote
0
down vote
You can use scalar product
$$
langle mathbf{u},mathbf{v}rangle = lVert mathbf{u}rVert lVert mathbf{v}rVert cosalpha
$$
where $alpha$ is the angle between $mathbf{u}$ and $mathbf{v}$.
Hence
$$
alpha=arccos frac{langle mathbf{u},mathbf{v}rangle}{lVert mathbf{u}rVert lVert mathbf{v}rVert}
$$
In your case
begin{align}
mathbf{u}=A-B\
mathbf{v}=C-B
end{align}
Notice that you'll get $alphale180°$.
You can use scalar product
$$
langle mathbf{u},mathbf{v}rangle = lVert mathbf{u}rVert lVert mathbf{v}rVert cosalpha
$$
where $alpha$ is the angle between $mathbf{u}$ and $mathbf{v}$.
Hence
$$
alpha=arccos frac{langle mathbf{u},mathbf{v}rangle}{lVert mathbf{u}rVert lVert mathbf{v}rVert}
$$
In your case
begin{align}
mathbf{u}=A-B\
mathbf{v}=C-B
end{align}
Notice that you'll get $alphale180°$.
answered Oct 31 at 9:53
francescop21
892115
892115
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
|
show 1 more comment
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
Thanks for your answer, but I was looking to determine if it is reflex angle (more than 180 degree) or not. This (hopefully) could be achieved with the knowing the normal of the plane they are embedded in.
– Lion King
Oct 31 at 10:00
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
What do you mean "determine if it is reflex angle". You always get two angles $hat{ABC}le 180°$ and $check{ABC}ge 180°$. With the procedure I told you, you can compute $alpha=hat{ABC}$, then you have $check{ABC}=360°-alpha$.
– francescop21
Oct 31 at 10:19
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
Not if you know the normal. You can decide which angle to choose.
– Lion King
Oct 31 at 10:20
How would you make such decision?
– francescop21
Oct 31 at 10:21
How would you make such decision?
– francescop21
Oct 31 at 10:21
That is basically my question.
– Lion King
Oct 31 at 10:26
That is basically my question.
– Lion King
Oct 31 at 10:26
|
show 1 more comment
up vote
0
down vote
accepted
I finally found a solution for this case in here.
The part that is relevant for this question:
When your vectors are not placed arbitrarily, but lie within a plane with a known normal vector $n$. Then the axis of rotation will be in direction $n$ as well, and the orientation of $n$ will fix an orientation for that axis. In this case you can calculate the angle via:
$$dot = x_1x_2 + y_1y_2 + z_1z_2$$
$$det = x_1y_2z_n + x_2y_nz_1 + x_ny_1z_2 - z_1y_2*x_n - z_2y_nx_1 - z_ny_1*x_2$$
$$angle = arctan(det, dot)$$
One condition for this to work is that the normal vector n has unit length. If not, you'll have to normalize it.
add a comment |
up vote
0
down vote
accepted
I finally found a solution for this case in here.
The part that is relevant for this question:
When your vectors are not placed arbitrarily, but lie within a plane with a known normal vector $n$. Then the axis of rotation will be in direction $n$ as well, and the orientation of $n$ will fix an orientation for that axis. In this case you can calculate the angle via:
$$dot = x_1x_2 + y_1y_2 + z_1z_2$$
$$det = x_1y_2z_n + x_2y_nz_1 + x_ny_1z_2 - z_1y_2*x_n - z_2y_nx_1 - z_ny_1*x_2$$
$$angle = arctan(det, dot)$$
One condition for this to work is that the normal vector n has unit length. If not, you'll have to normalize it.
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
I finally found a solution for this case in here.
The part that is relevant for this question:
When your vectors are not placed arbitrarily, but lie within a plane with a known normal vector $n$. Then the axis of rotation will be in direction $n$ as well, and the orientation of $n$ will fix an orientation for that axis. In this case you can calculate the angle via:
$$dot = x_1x_2 + y_1y_2 + z_1z_2$$
$$det = x_1y_2z_n + x_2y_nz_1 + x_ny_1z_2 - z_1y_2*x_n - z_2y_nx_1 - z_ny_1*x_2$$
$$angle = arctan(det, dot)$$
One condition for this to work is that the normal vector n has unit length. If not, you'll have to normalize it.
I finally found a solution for this case in here.
The part that is relevant for this question:
When your vectors are not placed arbitrarily, but lie within a plane with a known normal vector $n$. Then the axis of rotation will be in direction $n$ as well, and the orientation of $n$ will fix an orientation for that axis. In this case you can calculate the angle via:
$$dot = x_1x_2 + y_1y_2 + z_1z_2$$
$$det = x_1y_2z_n + x_2y_nz_1 + x_ny_1z_2 - z_1y_2*x_n - z_2y_nx_1 - z_ny_1*x_2$$
$$angle = arctan(det, dot)$$
One condition for this to work is that the normal vector n has unit length. If not, you'll have to normalize it.
answered yesterday
Lion King
135
135
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2978829%2ffind-reflex-angle-with-3-points-and-their-plane-normal%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
You will have to be clearer about what you want.
– Paul
Oct 31 at 9:22
@Paul updated my question with more clarification.
– Lion King
Oct 31 at 9:36
Sorry, still no clearer. I cannot see how your clarification relates to your original question.. In your clarification, what do you mean by "the direction of normal between the two vectors"? Also, any angle is relative to a given direction - it could, for example, be the angle measured from one vector anticlockwise to the other. Where are you measuring angle from?
– Paul
Oct 31 at 9:43
@Paul The two vectors can have two normals (In different direction of the plane they are in). Now I know which one is the "correct" one. In other words I know the orientation. That means the vectors are not placed arbitrarily, but lie within a plane with a known normal vector n.
– Lion King
Oct 31 at 9:49
Is this normal vector irrelevant then? You just want the angle between 2 vectors in a plane?
– Paul
Oct 31 at 9:55