How to project a 3D-point on a 2D-plane relative to an observer?











up vote
1
down vote

favorite
1












In a 3D-space there is a random number of objects ($X$s) of which their exact position is known.



These objects can be observed through a "screen" which has a certain dimension, position and orientation.



Its position and orientation is related to point $P$. The "screen" can be moved around this point with a fixed distance.



(I'm imagining the "screen" moving on the hull of a sphere around $P$ and the line of touching point and $P$ is always orthogonal to the plane).



Then, there is the observer point ($O$) which is on the opposite side of $P$ related to the plane, maybe with the same distance or less.



The observer now looks "through" the "screen" into the 3D world and sees some of the $X$s.



My questions is, what approach should I follow to calculate where the line between $O$ and one of the $X$ touches the "screen"? What variables do I have to calculate?



My math-lessons date and I'm a little bit rusty when it comes to terms and ideas. Please bear with me and do not hesitate to ask for more details.



Also, I'm aware that this is a quite complete problem-question, but I prefer to ask one big question and maybe get a new idea of how to get along rather than thinking about it on my own and asking only detail-questions and missing out the genius idea.










share|cite|improve this question
























  • Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
    – fang
    Aug 21 at 1:47










  • Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
    – David K
    Aug 21 at 2:47










  • Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
    – David K
    Aug 21 at 2:55










  • Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
    – Patrick B.
    Aug 21 at 6:00












  • Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
    – amd
    Aug 21 at 20:30

















up vote
1
down vote

favorite
1












In a 3D-space there is a random number of objects ($X$s) of which their exact position is known.



These objects can be observed through a "screen" which has a certain dimension, position and orientation.



Its position and orientation is related to point $P$. The "screen" can be moved around this point with a fixed distance.



(I'm imagining the "screen" moving on the hull of a sphere around $P$ and the line of touching point and $P$ is always orthogonal to the plane).



Then, there is the observer point ($O$) which is on the opposite side of $P$ related to the plane, maybe with the same distance or less.



The observer now looks "through" the "screen" into the 3D world and sees some of the $X$s.



My questions is, what approach should I follow to calculate where the line between $O$ and one of the $X$ touches the "screen"? What variables do I have to calculate?



My math-lessons date and I'm a little bit rusty when it comes to terms and ideas. Please bear with me and do not hesitate to ask for more details.



Also, I'm aware that this is a quite complete problem-question, but I prefer to ask one big question and maybe get a new idea of how to get along rather than thinking about it on my own and asking only detail-questions and missing out the genius idea.










share|cite|improve this question
























  • Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
    – fang
    Aug 21 at 1:47










  • Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
    – David K
    Aug 21 at 2:47










  • Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
    – David K
    Aug 21 at 2:55










  • Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
    – Patrick B.
    Aug 21 at 6:00












  • Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
    – amd
    Aug 21 at 20:30















up vote
1
down vote

favorite
1









up vote
1
down vote

favorite
1






1





In a 3D-space there is a random number of objects ($X$s) of which their exact position is known.



These objects can be observed through a "screen" which has a certain dimension, position and orientation.



Its position and orientation is related to point $P$. The "screen" can be moved around this point with a fixed distance.



(I'm imagining the "screen" moving on the hull of a sphere around $P$ and the line of touching point and $P$ is always orthogonal to the plane).



Then, there is the observer point ($O$) which is on the opposite side of $P$ related to the plane, maybe with the same distance or less.



The observer now looks "through" the "screen" into the 3D world and sees some of the $X$s.



My questions is, what approach should I follow to calculate where the line between $O$ and one of the $X$ touches the "screen"? What variables do I have to calculate?



My math-lessons date and I'm a little bit rusty when it comes to terms and ideas. Please bear with me and do not hesitate to ask for more details.



Also, I'm aware that this is a quite complete problem-question, but I prefer to ask one big question and maybe get a new idea of how to get along rather than thinking about it on my own and asking only detail-questions and missing out the genius idea.










share|cite|improve this question















In a 3D-space there is a random number of objects ($X$s) of which their exact position is known.



These objects can be observed through a "screen" which has a certain dimension, position and orientation.



Its position and orientation is related to point $P$. The "screen" can be moved around this point with a fixed distance.



(I'm imagining the "screen" moving on the hull of a sphere around $P$ and the line of touching point and $P$ is always orthogonal to the plane).



Then, there is the observer point ($O$) which is on the opposite side of $P$ related to the plane, maybe with the same distance or less.



The observer now looks "through" the "screen" into the 3D world and sees some of the $X$s.



My questions is, what approach should I follow to calculate where the line between $O$ and one of the $X$ touches the "screen"? What variables do I have to calculate?



My math-lessons date and I'm a little bit rusty when it comes to terms and ideas. Please bear with me and do not hesitate to ask for more details.



Also, I'm aware that this is a quite complete problem-question, but I prefer to ask one big question and maybe get a new idea of how to get along rather than thinking about it on my own and asking only detail-questions and missing out the genius idea.







trigonometry 3d






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Aug 21 at 6:02

























asked Aug 20 at 14:20









Patrick B.

1065




1065












  • Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
    – fang
    Aug 21 at 1:47










  • Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
    – David K
    Aug 21 at 2:47










  • Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
    – David K
    Aug 21 at 2:55










  • Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
    – Patrick B.
    Aug 21 at 6:00












  • Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
    – amd
    Aug 21 at 20:30




















  • Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
    – fang
    Aug 21 at 1:47










  • Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
    – David K
    Aug 21 at 2:47










  • Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
    – David K
    Aug 21 at 2:55










  • Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
    – Patrick B.
    Aug 21 at 6:00












  • Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
    – amd
    Aug 21 at 20:30


















Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
– fang
Aug 21 at 1:47




Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps
– fang
Aug 21 at 1:47












Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
– David K
Aug 21 at 2:47




Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.)
– David K
Aug 21 at 2:47












Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
– David K
Aug 21 at 2:55




Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this.
– David K
Aug 21 at 2:55












Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
– Patrick B.
Aug 21 at 6:00






Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it?
– Patrick B.
Aug 21 at 6:00














Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
– amd
Aug 21 at 20:30






Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world?
– amd
Aug 21 at 20:30












1 Answer
1






active

oldest

votes

















up vote
0
down vote













Finally I got to the point to advance and I found Geogebra. Which helped me to understand and simply my problem.



Here's what I'm doing to get the point the screen's intersecting point of $O$ and any $X$: $B$:



Given are $X$ (Object), $P$ (Position) and $O$ (Observer position, derived from two given angles).




  1. Calculate the center point of the screen, which is also located the plane $$A = frac{P+O}{2}$$

  2. Get the perpendicular plane from $$A, overrightarrow{OP}$$

  3. now we can get $B$ from the intersection of the line $OX$ and the plane found in 2.


That does not yet give me the relative coordinates of $B$ on the screen. But this is out of scope of this question.



enter image description here






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%2f2888843%2fhow-to-project-a-3d-point-on-a-2d-plane-relative-to-an-observer%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    Finally I got to the point to advance and I found Geogebra. Which helped me to understand and simply my problem.



    Here's what I'm doing to get the point the screen's intersecting point of $O$ and any $X$: $B$:



    Given are $X$ (Object), $P$ (Position) and $O$ (Observer position, derived from two given angles).




    1. Calculate the center point of the screen, which is also located the plane $$A = frac{P+O}{2}$$

    2. Get the perpendicular plane from $$A, overrightarrow{OP}$$

    3. now we can get $B$ from the intersection of the line $OX$ and the plane found in 2.


    That does not yet give me the relative coordinates of $B$ on the screen. But this is out of scope of this question.



    enter image description here






    share|cite|improve this answer



























      up vote
      0
      down vote













      Finally I got to the point to advance and I found Geogebra. Which helped me to understand and simply my problem.



      Here's what I'm doing to get the point the screen's intersecting point of $O$ and any $X$: $B$:



      Given are $X$ (Object), $P$ (Position) and $O$ (Observer position, derived from two given angles).




      1. Calculate the center point of the screen, which is also located the plane $$A = frac{P+O}{2}$$

      2. Get the perpendicular plane from $$A, overrightarrow{OP}$$

      3. now we can get $B$ from the intersection of the line $OX$ and the plane found in 2.


      That does not yet give me the relative coordinates of $B$ on the screen. But this is out of scope of this question.



      enter image description here






      share|cite|improve this answer

























        up vote
        0
        down vote










        up vote
        0
        down vote









        Finally I got to the point to advance and I found Geogebra. Which helped me to understand and simply my problem.



        Here's what I'm doing to get the point the screen's intersecting point of $O$ and any $X$: $B$:



        Given are $X$ (Object), $P$ (Position) and $O$ (Observer position, derived from two given angles).




        1. Calculate the center point of the screen, which is also located the plane $$A = frac{P+O}{2}$$

        2. Get the perpendicular plane from $$A, overrightarrow{OP}$$

        3. now we can get $B$ from the intersection of the line $OX$ and the plane found in 2.


        That does not yet give me the relative coordinates of $B$ on the screen. But this is out of scope of this question.



        enter image description here






        share|cite|improve this answer














        Finally I got to the point to advance and I found Geogebra. Which helped me to understand and simply my problem.



        Here's what I'm doing to get the point the screen's intersecting point of $O$ and any $X$: $B$:



        Given are $X$ (Object), $P$ (Position) and $O$ (Observer position, derived from two given angles).




        1. Calculate the center point of the screen, which is also located the plane $$A = frac{P+O}{2}$$

        2. Get the perpendicular plane from $$A, overrightarrow{OP}$$

        3. now we can get $B$ from the intersection of the line $OX$ and the plane found in 2.


        That does not yet give me the relative coordinates of $B$ on the screen. But this is out of scope of this question.



        enter image description here







        share|cite|improve this answer














        share|cite|improve this answer



        share|cite|improve this answer








        edited 20 hours ago

























        answered 20 hours ago









        Patrick B.

        1065




        1065






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2888843%2fhow-to-project-a-3d-point-on-a-2d-plane-relative-to-an-observer%23new-answer', 'question_page');
            }
            );

            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







            Popular posts from this blog

            'app-layout' is not a known element: how to share Component with different Modules

            android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

            WPF add header to Image with URL pettitions [duplicate]