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$.










share|cite|improve this question
























  • 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















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$.










share|cite|improve this question
























  • 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













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$.










share|cite|improve this question















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






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








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


















  • 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










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°$.






share|cite|improve this answer





















  • 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


















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.






share|cite|improve this answer





















    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',
    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
    });


    }
    });














     

    draft saved


    draft discarded


















    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
































    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°$.






    share|cite|improve this answer





















    • 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















    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°$.






    share|cite|improve this answer





















    • 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













    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°$.






    share|cite|improve this answer












    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°$.







    share|cite|improve this answer












    share|cite|improve this answer



    share|cite|improve this answer










    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


















    • 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










    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.






    share|cite|improve this answer

























      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.






      share|cite|improve this answer























        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.






        share|cite|improve this answer












        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.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered yesterday









        Lion King

        135




        135






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            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




















































































            Popular posts from this blog

            How to change which sound is reproduced for terminal bell?

            Can I use Tabulator js library in my java Spring + Thymeleaf project?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents