Fast way to compare angles w/o their measures
I need an efficient way to compare the measures of two angles in $mathbb{R^2}$ that ideally relies on the smallest number of arithmetic operations and no trigonometric operations (no $arccos$) or square roots. Given two angles $angle{p_1p_0p_2}$ and $angle{p_3p_0p_4}$ whose measures are in the range $big(0,{pi}big)$ radians with vertex $p_0$ at the origin, what is the fastest way to compare the measures of the angles (i.e. find which angle has the largest measure/which one has the smallest measure)?
I understand that the $z$ component of the cross product of two or more pairs of vectors can be used to compare angles where $theta in big(0,frac{pi}{2}big)$ radians. As stated above, however, I need to compare angles with $theta in big(0,{pi}big)$.
Any ideas?
linear-algebra rotations angle
add a comment |
I need an efficient way to compare the measures of two angles in $mathbb{R^2}$ that ideally relies on the smallest number of arithmetic operations and no trigonometric operations (no $arccos$) or square roots. Given two angles $angle{p_1p_0p_2}$ and $angle{p_3p_0p_4}$ whose measures are in the range $big(0,{pi}big)$ radians with vertex $p_0$ at the origin, what is the fastest way to compare the measures of the angles (i.e. find which angle has the largest measure/which one has the smallest measure)?
I understand that the $z$ component of the cross product of two or more pairs of vectors can be used to compare angles where $theta in big(0,frac{pi}{2}big)$ radians. As stated above, however, I need to compare angles with $theta in big(0,{pi}big)$.
Any ideas?
linear-algebra rotations angle
1
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20
add a comment |
I need an efficient way to compare the measures of two angles in $mathbb{R^2}$ that ideally relies on the smallest number of arithmetic operations and no trigonometric operations (no $arccos$) or square roots. Given two angles $angle{p_1p_0p_2}$ and $angle{p_3p_0p_4}$ whose measures are in the range $big(0,{pi}big)$ radians with vertex $p_0$ at the origin, what is the fastest way to compare the measures of the angles (i.e. find which angle has the largest measure/which one has the smallest measure)?
I understand that the $z$ component of the cross product of two or more pairs of vectors can be used to compare angles where $theta in big(0,frac{pi}{2}big)$ radians. As stated above, however, I need to compare angles with $theta in big(0,{pi}big)$.
Any ideas?
linear-algebra rotations angle
I need an efficient way to compare the measures of two angles in $mathbb{R^2}$ that ideally relies on the smallest number of arithmetic operations and no trigonometric operations (no $arccos$) or square roots. Given two angles $angle{p_1p_0p_2}$ and $angle{p_3p_0p_4}$ whose measures are in the range $big(0,{pi}big)$ radians with vertex $p_0$ at the origin, what is the fastest way to compare the measures of the angles (i.e. find which angle has the largest measure/which one has the smallest measure)?
I understand that the $z$ component of the cross product of two or more pairs of vectors can be used to compare angles where $theta in big(0,frac{pi}{2}big)$ radians. As stated above, however, I need to compare angles with $theta in big(0,{pi}big)$.
Any ideas?
linear-algebra rotations angle
linear-algebra rotations angle
edited Nov 27 at 3:11
asked Nov 27 at 3:01
rbjacob
223
223
1
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20
add a comment |
1
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20
1
1
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20
add a comment |
2 Answers
2
active
oldest
votes
Let $theta$ be the angle between $p_1$ and $p_2$, and $phi$ the one between $p_3$ and $p_4$. Since $p_1 cdot p_2 = |p_1| |p_2| cos theta$, the sign (positive or negative) of $p_1 cdot p_2$ tells you whether $theta in [0, pi/2)$ or $(pi/2, pi)$. Similarly for $phi$, and so you may already be able to tell which is larger.
If both dot products have the same sign, then define
$$ r_theta := (p_1 cdot p_2)^2 |p_3|^2 |p_4|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 theta$$
and
$$ r_phi := (p_3 cdot p_4)^2 |p_1|^2 |p_2|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 phi$$
and so comparing $r_theta$ and $r_phi$ tells you which has the largest cosine squared, from which you can figure out what is the larger angle. At worst, this takes 6 dot products, 4 multiplications, and 4 comparisons.
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
add a comment |
Try the dot product. You will like the results.
Because, dot product of two vectors will be equal to the cosine of the angle between the vectors, times the lengths of each of the vectors.
You do the rest.
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3015267%2ffast-way-to-compare-angles-w-o-their-measures%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Let $theta$ be the angle between $p_1$ and $p_2$, and $phi$ the one between $p_3$ and $p_4$. Since $p_1 cdot p_2 = |p_1| |p_2| cos theta$, the sign (positive or negative) of $p_1 cdot p_2$ tells you whether $theta in [0, pi/2)$ or $(pi/2, pi)$. Similarly for $phi$, and so you may already be able to tell which is larger.
If both dot products have the same sign, then define
$$ r_theta := (p_1 cdot p_2)^2 |p_3|^2 |p_4|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 theta$$
and
$$ r_phi := (p_3 cdot p_4)^2 |p_1|^2 |p_2|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 phi$$
and so comparing $r_theta$ and $r_phi$ tells you which has the largest cosine squared, from which you can figure out what is the larger angle. At worst, this takes 6 dot products, 4 multiplications, and 4 comparisons.
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
add a comment |
Let $theta$ be the angle between $p_1$ and $p_2$, and $phi$ the one between $p_3$ and $p_4$. Since $p_1 cdot p_2 = |p_1| |p_2| cos theta$, the sign (positive or negative) of $p_1 cdot p_2$ tells you whether $theta in [0, pi/2)$ or $(pi/2, pi)$. Similarly for $phi$, and so you may already be able to tell which is larger.
If both dot products have the same sign, then define
$$ r_theta := (p_1 cdot p_2)^2 |p_3|^2 |p_4|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 theta$$
and
$$ r_phi := (p_3 cdot p_4)^2 |p_1|^2 |p_2|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 phi$$
and so comparing $r_theta$ and $r_phi$ tells you which has the largest cosine squared, from which you can figure out what is the larger angle. At worst, this takes 6 dot products, 4 multiplications, and 4 comparisons.
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
add a comment |
Let $theta$ be the angle between $p_1$ and $p_2$, and $phi$ the one between $p_3$ and $p_4$. Since $p_1 cdot p_2 = |p_1| |p_2| cos theta$, the sign (positive or negative) of $p_1 cdot p_2$ tells you whether $theta in [0, pi/2)$ or $(pi/2, pi)$. Similarly for $phi$, and so you may already be able to tell which is larger.
If both dot products have the same sign, then define
$$ r_theta := (p_1 cdot p_2)^2 |p_3|^2 |p_4|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 theta$$
and
$$ r_phi := (p_3 cdot p_4)^2 |p_1|^2 |p_2|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 phi$$
and so comparing $r_theta$ and $r_phi$ tells you which has the largest cosine squared, from which you can figure out what is the larger angle. At worst, this takes 6 dot products, 4 multiplications, and 4 comparisons.
Let $theta$ be the angle between $p_1$ and $p_2$, and $phi$ the one between $p_3$ and $p_4$. Since $p_1 cdot p_2 = |p_1| |p_2| cos theta$, the sign (positive or negative) of $p_1 cdot p_2$ tells you whether $theta in [0, pi/2)$ or $(pi/2, pi)$. Similarly for $phi$, and so you may already be able to tell which is larger.
If both dot products have the same sign, then define
$$ r_theta := (p_1 cdot p_2)^2 |p_3|^2 |p_4|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 theta$$
and
$$ r_phi := (p_3 cdot p_4)^2 |p_1|^2 |p_2|^2 = |p_1|^2 |p_2|^2 |p_3|^2 |p_4|^2 cos^2 phi$$
and so comparing $r_theta$ and $r_phi$ tells you which has the largest cosine squared, from which you can figure out what is the larger angle. At worst, this takes 6 dot products, 4 multiplications, and 4 comparisons.
answered Nov 27 at 3:30
Joppy
5,573420
5,573420
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
add a comment |
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
Thanks, this is clever and does the job perfectly!
– rbjacob
Nov 27 at 4:16
add a comment |
Try the dot product. You will like the results.
Because, dot product of two vectors will be equal to the cosine of the angle between the vectors, times the lengths of each of the vectors.
You do the rest.
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
add a comment |
Try the dot product. You will like the results.
Because, dot product of two vectors will be equal to the cosine of the angle between the vectors, times the lengths of each of the vectors.
You do the rest.
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
add a comment |
Try the dot product. You will like the results.
Because, dot product of two vectors will be equal to the cosine of the angle between the vectors, times the lengths of each of the vectors.
You do the rest.
Try the dot product. You will like the results.
Because, dot product of two vectors will be equal to the cosine of the angle between the vectors, times the lengths of each of the vectors.
You do the rest.
edited Nov 27 at 3:12
answered Nov 27 at 3:06
John L Winters
829
829
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
add a comment |
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
The dot product is equal to the product of the magnitudes times the cosine of the angle. Since the magnitude involves taking square roots, I believe this violates the requirements in the question.
– AlexanderJ93
Nov 27 at 3:14
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
@AlexanderJ93 The rest was done for the student here. No roots taken.
– John L Winters
Nov 27 at 4:17
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3015267%2ffast-way-to-compare-angles-w-o-their-measures%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
What does it mean to "compare"?
– AlexanderJ93
Nov 27 at 3:08
So the points are given as $(x, y)$ pairs, and you wish to compare what exactly about the angles?
– Joppy
Nov 27 at 3:09
Compare as in find which angle has the largest measure.
– rbjacob
Nov 27 at 3:10
As in, when the angles lie in the range $[0, pi]$, which is larger?
– Joppy
Nov 27 at 3:16
Yes, but for range $big(0,pibig)$, not$big[0,pibig]$.
– rbjacob
Nov 27 at 3:20