Intersection point of 2 lines defined by 2 points eachIntersection between two linesParallel Lines, One point on each.Intersection between 2 linesStraight lines - point of intersectionFinding the intersection point between two lines using a matrixCalculate intersection point between two linescollision point of circle and lineFind intersection point of two straight linesIntersection point of multiple 3D linesFour Dimensional intersection point

Theorems that impeded progress

Fully-Firstable Anagram Sets

How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?

Codimension of non-flat locus

How can I prevent hyper evolved versions of regular creatures from wiping out their cousins?

Does an object always see its latest internal state irrespective of thread?

Can I ask the recruiters in my resume to put the reason why I am rejected?

Find the result of this dual key cipher

Do I have a twin with permutated remainders?

Is it possible to do 50 km distance without any previous training?

How to efficiently unroll a matrix by value with numpy?

I'm flying to France today and my passport expires in less than 2 months

If human space travel is limited by the G force vulnerability, is there a way to counter G forces?

Can an x86 CPU running in real mode be considered to be basically an 8086 CPU?

Why "Having chlorophyll without photosynthesis is actually very dangerous" and "like living with a bomb"?

Convert two switches to a dual stack, and add outlet - possible here?

What is the word for reserving something for yourself before others do?

Modeling an IP Address

Can I make popcorn with any corn?

Why do I get two different answers for this counting problem?

Which country benefited the most from UN Security Council vetoes?

Is it possible to record a short contained sound no longer than 60 milliseconds?

What would happen to a modern skyscraper if it rains micro blackholes?

How do I draw and define two right triangles next to each other?



Intersection point of 2 lines defined by 2 points each


Intersection between two linesParallel Lines, One point on each.Intersection between 2 linesStraight lines - point of intersectionFinding the intersection point between two lines using a matrixCalculate intersection point between two linescollision point of circle and lineFind intersection point of two straight linesIntersection point of multiple 3D linesFour Dimensional intersection point













3












$begingroup$


I'm implementing this in code, but I'll rewrite it so that it is easier understood (like pseudocode):



# a = pt 1 on line 1
# b = pt 2 on line 1
# c = pt 1 on line 2
# d = pt 2 on line 2
def intersect(a,b,c,d):

# stuff for line 1
a1 = b.y-a.y
b1 = a.x-b.x
c1 = a1*a.x + b1*a.y

# stuff for line 2
a2 = d.y-c.y
b2 = c.x-d.x
c2 = a2*c.x + b2*c.y

determinant = a1*b2 - a2*b1

if (determinant == 0):
# Return (infinity, infinity) if they never intersect
# By "never intersect", I mean that the lines are parallel to each other
return math.inf, math,inf
else:
x = (b2*c1 - b1*c2)/determinant
y = (a1*c2 - a2*c1)/determinant
return x,y


All the above works, ... but only does by assuming that the lines extend infinitely in each direction, like a linear equation. I'll show what I mean here.



There are the 2 lines, red and green, and the gold dot is what is returned when I test this code ... but the lines don't actually intersect. What can be used to test whether the lines truly intersect?



Heres the actual Python code if needed.










share|cite|improve this question











$endgroup$
















    3












    $begingroup$


    I'm implementing this in code, but I'll rewrite it so that it is easier understood (like pseudocode):



    # a = pt 1 on line 1
    # b = pt 2 on line 1
    # c = pt 1 on line 2
    # d = pt 2 on line 2
    def intersect(a,b,c,d):

    # stuff for line 1
    a1 = b.y-a.y
    b1 = a.x-b.x
    c1 = a1*a.x + b1*a.y

    # stuff for line 2
    a2 = d.y-c.y
    b2 = c.x-d.x
    c2 = a2*c.x + b2*c.y

    determinant = a1*b2 - a2*b1

    if (determinant == 0):
    # Return (infinity, infinity) if they never intersect
    # By "never intersect", I mean that the lines are parallel to each other
    return math.inf, math,inf
    else:
    x = (b2*c1 - b1*c2)/determinant
    y = (a1*c2 - a2*c1)/determinant
    return x,y


    All the above works, ... but only does by assuming that the lines extend infinitely in each direction, like a linear equation. I'll show what I mean here.



    There are the 2 lines, red and green, and the gold dot is what is returned when I test this code ... but the lines don't actually intersect. What can be used to test whether the lines truly intersect?



    Heres the actual Python code if needed.










    share|cite|improve this question











    $endgroup$














      3












      3








      3





      $begingroup$


      I'm implementing this in code, but I'll rewrite it so that it is easier understood (like pseudocode):



      # a = pt 1 on line 1
      # b = pt 2 on line 1
      # c = pt 1 on line 2
      # d = pt 2 on line 2
      def intersect(a,b,c,d):

      # stuff for line 1
      a1 = b.y-a.y
      b1 = a.x-b.x
      c1 = a1*a.x + b1*a.y

      # stuff for line 2
      a2 = d.y-c.y
      b2 = c.x-d.x
      c2 = a2*c.x + b2*c.y

      determinant = a1*b2 - a2*b1

      if (determinant == 0):
      # Return (infinity, infinity) if they never intersect
      # By "never intersect", I mean that the lines are parallel to each other
      return math.inf, math,inf
      else:
      x = (b2*c1 - b1*c2)/determinant
      y = (a1*c2 - a2*c1)/determinant
      return x,y


      All the above works, ... but only does by assuming that the lines extend infinitely in each direction, like a linear equation. I'll show what I mean here.



      There are the 2 lines, red and green, and the gold dot is what is returned when I test this code ... but the lines don't actually intersect. What can be used to test whether the lines truly intersect?



      Heres the actual Python code if needed.










      share|cite|improve this question











      $endgroup$




      I'm implementing this in code, but I'll rewrite it so that it is easier understood (like pseudocode):



      # a = pt 1 on line 1
      # b = pt 2 on line 1
      # c = pt 1 on line 2
      # d = pt 2 on line 2
      def intersect(a,b,c,d):

      # stuff for line 1
      a1 = b.y-a.y
      b1 = a.x-b.x
      c1 = a1*a.x + b1*a.y

      # stuff for line 2
      a2 = d.y-c.y
      b2 = c.x-d.x
      c2 = a2*c.x + b2*c.y

      determinant = a1*b2 - a2*b1

      if (determinant == 0):
      # Return (infinity, infinity) if they never intersect
      # By "never intersect", I mean that the lines are parallel to each other
      return math.inf, math,inf
      else:
      x = (b2*c1 - b1*c2)/determinant
      y = (a1*c2 - a2*c1)/determinant
      return x,y


      All the above works, ... but only does by assuming that the lines extend infinitely in each direction, like a linear equation. I'll show what I mean here.



      There are the 2 lines, red and green, and the gold dot is what is returned when I test this code ... but the lines don't actually intersect. What can be used to test whether the lines truly intersect?



      Heres the actual Python code if needed.







      linear-algebra matrices python






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited 4 hours ago









      Ethan Bolker

      45.6k553120




      45.6k553120










      asked 6 hours ago









      crazicrafter1crazicrafter1

      247




      247




















          3 Answers
          3






          active

          oldest

          votes


















          3












          $begingroup$

          I think you are asking for the intersection point (if any) of two line segments, not two lines.



          Once you find the intersection point $P$ as you have, you can check that it is between the endpoints $A$ and $B$ of a segment by solving the equation
          $$
          tA + (1-t)B = P
          $$

          for $t$ and checking that $t$ is between $0$ and $1$. That equation will have a solution because you know $P$ is on the line. Do that for each of the two segments.



          Warning: you may have numerical instability if the determinant is close to $0$. That will happen when the lines are nearly parallel.



          (There may be a shorter way to do this from scratch, but this will work.)






          share|cite|improve this answer











          $endgroup$




















            3












            $begingroup$

            You have the point $x$ where the infinite lines intersect. You need to check whether that point is on both finite line segments.



            Line segment 1 has endpoints $a$ and $b$. Use these to make a vector $vecab=b-a$. If the dot product $vecabcdotvecax$ is positive, then $x$ is forward of $a$; if it's negative, then $x$ is behind $a$. Likewise, if $vecabcdotvecbx$ is positive, then $x$ is forward of $b$. The point $x$ is on the segment if it's between $a$ and $b$.



            Do the same test for the other line segment.






            share|cite|improve this answer









            $endgroup$




















              0












              $begingroup$

              This is an elaboration on Ethan Bolker's post.



              Every point on the line segment from $a$ to $b$ can be expressed as $$a + t(b-a)$$ for some $t$ between $0$ and $1$. Likewise, every point on the line segment from $c$ to $d$ can be expressed as $$c + s(d-c)$$ for some $s$ between $0$ and $1$. Any intersection point can be expressed in both forms, so we will have



              $$a + t(b-a) = c + s(d - c)$$
              re-arranging,
              $$t(b - a) + s(c - d) = c - a$$



              Letting $n = b - a, m = c-d$, and $p = c - a$, and switching to coordinates, we have
              $$n_xt + m_xs = p_x\n_yt + m_ys = p_y$$



              Instead of solving directly for the coordinates of the point of intersection, you should solve for $t$ and $s$. Letting
              $$D = n_xm_y - n_ym_x\Q_x = m_yp_x - m_xp_y\Q_y =n_xp_y - n_yp_x$$



              We have $$t=frac Q_xD, quad s = frac Q_yD$$



              In particular, we can figure out the following before doing the divisions:



              • If $D$ is $0$, then the segments are parallel - the only way they can intersect in a unique point is if the two segments are adjacent and have a common endpoint (for instance $b = c$, and $a$ and $d$ are on opposite sides of the common point).

              • If $D$ is the opposite sign of either $Q_x$ or $Q_y$, then one of $t$ or $s < 0$, so the line segments do not intersect.

              • If $|D|$ is larger than either $|Q_x|$ or $|Q_y|$, then one of $t$ or $s > 1$, and again the line segments do not intersect.

              • Otherwise, the segments do intersect, and you either calculate $t$ and $a + t(b -a)$ or calculate $s$ and $c + s(d - c)$ to get the point of intersection.

              This is a more numerically stable approach to the problem.






              share|cite|improve this answer









              $endgroup$













                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
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3176543%2fintersection-point-of-2-lines-defined-by-2-points-each%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                3












                $begingroup$

                I think you are asking for the intersection point (if any) of two line segments, not two lines.



                Once you find the intersection point $P$ as you have, you can check that it is between the endpoints $A$ and $B$ of a segment by solving the equation
                $$
                tA + (1-t)B = P
                $$

                for $t$ and checking that $t$ is between $0$ and $1$. That equation will have a solution because you know $P$ is on the line. Do that for each of the two segments.



                Warning: you may have numerical instability if the determinant is close to $0$. That will happen when the lines are nearly parallel.



                (There may be a shorter way to do this from scratch, but this will work.)






                share|cite|improve this answer











                $endgroup$

















                  3












                  $begingroup$

                  I think you are asking for the intersection point (if any) of two line segments, not two lines.



                  Once you find the intersection point $P$ as you have, you can check that it is between the endpoints $A$ and $B$ of a segment by solving the equation
                  $$
                  tA + (1-t)B = P
                  $$

                  for $t$ and checking that $t$ is between $0$ and $1$. That equation will have a solution because you know $P$ is on the line. Do that for each of the two segments.



                  Warning: you may have numerical instability if the determinant is close to $0$. That will happen when the lines are nearly parallel.



                  (There may be a shorter way to do this from scratch, but this will work.)






                  share|cite|improve this answer











                  $endgroup$















                    3












                    3








                    3





                    $begingroup$

                    I think you are asking for the intersection point (if any) of two line segments, not two lines.



                    Once you find the intersection point $P$ as you have, you can check that it is between the endpoints $A$ and $B$ of a segment by solving the equation
                    $$
                    tA + (1-t)B = P
                    $$

                    for $t$ and checking that $t$ is between $0$ and $1$. That equation will have a solution because you know $P$ is on the line. Do that for each of the two segments.



                    Warning: you may have numerical instability if the determinant is close to $0$. That will happen when the lines are nearly parallel.



                    (There may be a shorter way to do this from scratch, but this will work.)






                    share|cite|improve this answer











                    $endgroup$



                    I think you are asking for the intersection point (if any) of two line segments, not two lines.



                    Once you find the intersection point $P$ as you have, you can check that it is between the endpoints $A$ and $B$ of a segment by solving the equation
                    $$
                    tA + (1-t)B = P
                    $$

                    for $t$ and checking that $t$ is between $0$ and $1$. That equation will have a solution because you know $P$ is on the line. Do that for each of the two segments.



                    Warning: you may have numerical instability if the determinant is close to $0$. That will happen when the lines are nearly parallel.



                    (There may be a shorter way to do this from scratch, but this will work.)







                    share|cite|improve this answer














                    share|cite|improve this answer



                    share|cite|improve this answer








                    edited 4 hours ago

























                    answered 4 hours ago









                    Ethan BolkerEthan Bolker

                    45.6k553120




                    45.6k553120





















                        3












                        $begingroup$

                        You have the point $x$ where the infinite lines intersect. You need to check whether that point is on both finite line segments.



                        Line segment 1 has endpoints $a$ and $b$. Use these to make a vector $vecab=b-a$. If the dot product $vecabcdotvecax$ is positive, then $x$ is forward of $a$; if it's negative, then $x$ is behind $a$. Likewise, if $vecabcdotvecbx$ is positive, then $x$ is forward of $b$. The point $x$ is on the segment if it's between $a$ and $b$.



                        Do the same test for the other line segment.






                        share|cite|improve this answer









                        $endgroup$

















                          3












                          $begingroup$

                          You have the point $x$ where the infinite lines intersect. You need to check whether that point is on both finite line segments.



                          Line segment 1 has endpoints $a$ and $b$. Use these to make a vector $vecab=b-a$. If the dot product $vecabcdotvecax$ is positive, then $x$ is forward of $a$; if it's negative, then $x$ is behind $a$. Likewise, if $vecabcdotvecbx$ is positive, then $x$ is forward of $b$. The point $x$ is on the segment if it's between $a$ and $b$.



                          Do the same test for the other line segment.






                          share|cite|improve this answer









                          $endgroup$















                            3












                            3








                            3





                            $begingroup$

                            You have the point $x$ where the infinite lines intersect. You need to check whether that point is on both finite line segments.



                            Line segment 1 has endpoints $a$ and $b$. Use these to make a vector $vecab=b-a$. If the dot product $vecabcdotvecax$ is positive, then $x$ is forward of $a$; if it's negative, then $x$ is behind $a$. Likewise, if $vecabcdotvecbx$ is positive, then $x$ is forward of $b$. The point $x$ is on the segment if it's between $a$ and $b$.



                            Do the same test for the other line segment.






                            share|cite|improve this answer









                            $endgroup$



                            You have the point $x$ where the infinite lines intersect. You need to check whether that point is on both finite line segments.



                            Line segment 1 has endpoints $a$ and $b$. Use these to make a vector $vecab=b-a$. If the dot product $vecabcdotvecax$ is positive, then $x$ is forward of $a$; if it's negative, then $x$ is behind $a$. Likewise, if $vecabcdotvecbx$ is positive, then $x$ is forward of $b$. The point $x$ is on the segment if it's between $a$ and $b$.



                            Do the same test for the other line segment.







                            share|cite|improve this answer












                            share|cite|improve this answer



                            share|cite|improve this answer










                            answered 4 hours ago









                            mr_e_manmr_e_man

                            1,1501424




                            1,1501424





















                                0












                                $begingroup$

                                This is an elaboration on Ethan Bolker's post.



                                Every point on the line segment from $a$ to $b$ can be expressed as $$a + t(b-a)$$ for some $t$ between $0$ and $1$. Likewise, every point on the line segment from $c$ to $d$ can be expressed as $$c + s(d-c)$$ for some $s$ between $0$ and $1$. Any intersection point can be expressed in both forms, so we will have



                                $$a + t(b-a) = c + s(d - c)$$
                                re-arranging,
                                $$t(b - a) + s(c - d) = c - a$$



                                Letting $n = b - a, m = c-d$, and $p = c - a$, and switching to coordinates, we have
                                $$n_xt + m_xs = p_x\n_yt + m_ys = p_y$$



                                Instead of solving directly for the coordinates of the point of intersection, you should solve for $t$ and $s$. Letting
                                $$D = n_xm_y - n_ym_x\Q_x = m_yp_x - m_xp_y\Q_y =n_xp_y - n_yp_x$$



                                We have $$t=frac Q_xD, quad s = frac Q_yD$$



                                In particular, we can figure out the following before doing the divisions:



                                • If $D$ is $0$, then the segments are parallel - the only way they can intersect in a unique point is if the two segments are adjacent and have a common endpoint (for instance $b = c$, and $a$ and $d$ are on opposite sides of the common point).

                                • If $D$ is the opposite sign of either $Q_x$ or $Q_y$, then one of $t$ or $s < 0$, so the line segments do not intersect.

                                • If $|D|$ is larger than either $|Q_x|$ or $|Q_y|$, then one of $t$ or $s > 1$, and again the line segments do not intersect.

                                • Otherwise, the segments do intersect, and you either calculate $t$ and $a + t(b -a)$ or calculate $s$ and $c + s(d - c)$ to get the point of intersection.

                                This is a more numerically stable approach to the problem.






                                share|cite|improve this answer









                                $endgroup$

















                                  0












                                  $begingroup$

                                  This is an elaboration on Ethan Bolker's post.



                                  Every point on the line segment from $a$ to $b$ can be expressed as $$a + t(b-a)$$ for some $t$ between $0$ and $1$. Likewise, every point on the line segment from $c$ to $d$ can be expressed as $$c + s(d-c)$$ for some $s$ between $0$ and $1$. Any intersection point can be expressed in both forms, so we will have



                                  $$a + t(b-a) = c + s(d - c)$$
                                  re-arranging,
                                  $$t(b - a) + s(c - d) = c - a$$



                                  Letting $n = b - a, m = c-d$, and $p = c - a$, and switching to coordinates, we have
                                  $$n_xt + m_xs = p_x\n_yt + m_ys = p_y$$



                                  Instead of solving directly for the coordinates of the point of intersection, you should solve for $t$ and $s$. Letting
                                  $$D = n_xm_y - n_ym_x\Q_x = m_yp_x - m_xp_y\Q_y =n_xp_y - n_yp_x$$



                                  We have $$t=frac Q_xD, quad s = frac Q_yD$$



                                  In particular, we can figure out the following before doing the divisions:



                                  • If $D$ is $0$, then the segments are parallel - the only way they can intersect in a unique point is if the two segments are adjacent and have a common endpoint (for instance $b = c$, and $a$ and $d$ are on opposite sides of the common point).

                                  • If $D$ is the opposite sign of either $Q_x$ or $Q_y$, then one of $t$ or $s < 0$, so the line segments do not intersect.

                                  • If $|D|$ is larger than either $|Q_x|$ or $|Q_y|$, then one of $t$ or $s > 1$, and again the line segments do not intersect.

                                  • Otherwise, the segments do intersect, and you either calculate $t$ and $a + t(b -a)$ or calculate $s$ and $c + s(d - c)$ to get the point of intersection.

                                  This is a more numerically stable approach to the problem.






                                  share|cite|improve this answer









                                  $endgroup$















                                    0












                                    0








                                    0





                                    $begingroup$

                                    This is an elaboration on Ethan Bolker's post.



                                    Every point on the line segment from $a$ to $b$ can be expressed as $$a + t(b-a)$$ for some $t$ between $0$ and $1$. Likewise, every point on the line segment from $c$ to $d$ can be expressed as $$c + s(d-c)$$ for some $s$ between $0$ and $1$. Any intersection point can be expressed in both forms, so we will have



                                    $$a + t(b-a) = c + s(d - c)$$
                                    re-arranging,
                                    $$t(b - a) + s(c - d) = c - a$$



                                    Letting $n = b - a, m = c-d$, and $p = c - a$, and switching to coordinates, we have
                                    $$n_xt + m_xs = p_x\n_yt + m_ys = p_y$$



                                    Instead of solving directly for the coordinates of the point of intersection, you should solve for $t$ and $s$. Letting
                                    $$D = n_xm_y - n_ym_x\Q_x = m_yp_x - m_xp_y\Q_y =n_xp_y - n_yp_x$$



                                    We have $$t=frac Q_xD, quad s = frac Q_yD$$



                                    In particular, we can figure out the following before doing the divisions:



                                    • If $D$ is $0$, then the segments are parallel - the only way they can intersect in a unique point is if the two segments are adjacent and have a common endpoint (for instance $b = c$, and $a$ and $d$ are on opposite sides of the common point).

                                    • If $D$ is the opposite sign of either $Q_x$ or $Q_y$, then one of $t$ or $s < 0$, so the line segments do not intersect.

                                    • If $|D|$ is larger than either $|Q_x|$ or $|Q_y|$, then one of $t$ or $s > 1$, and again the line segments do not intersect.

                                    • Otherwise, the segments do intersect, and you either calculate $t$ and $a + t(b -a)$ or calculate $s$ and $c + s(d - c)$ to get the point of intersection.

                                    This is a more numerically stable approach to the problem.






                                    share|cite|improve this answer









                                    $endgroup$



                                    This is an elaboration on Ethan Bolker's post.



                                    Every point on the line segment from $a$ to $b$ can be expressed as $$a + t(b-a)$$ for some $t$ between $0$ and $1$. Likewise, every point on the line segment from $c$ to $d$ can be expressed as $$c + s(d-c)$$ for some $s$ between $0$ and $1$. Any intersection point can be expressed in both forms, so we will have



                                    $$a + t(b-a) = c + s(d - c)$$
                                    re-arranging,
                                    $$t(b - a) + s(c - d) = c - a$$



                                    Letting $n = b - a, m = c-d$, and $p = c - a$, and switching to coordinates, we have
                                    $$n_xt + m_xs = p_x\n_yt + m_ys = p_y$$



                                    Instead of solving directly for the coordinates of the point of intersection, you should solve for $t$ and $s$. Letting
                                    $$D = n_xm_y - n_ym_x\Q_x = m_yp_x - m_xp_y\Q_y =n_xp_y - n_yp_x$$



                                    We have $$t=frac Q_xD, quad s = frac Q_yD$$



                                    In particular, we can figure out the following before doing the divisions:



                                    • If $D$ is $0$, then the segments are parallel - the only way they can intersect in a unique point is if the two segments are adjacent and have a common endpoint (for instance $b = c$, and $a$ and $d$ are on opposite sides of the common point).

                                    • If $D$ is the opposite sign of either $Q_x$ or $Q_y$, then one of $t$ or $s < 0$, so the line segments do not intersect.

                                    • If $|D|$ is larger than either $|Q_x|$ or $|Q_y|$, then one of $t$ or $s > 1$, and again the line segments do not intersect.

                                    • Otherwise, the segments do intersect, and you either calculate $t$ and $a + t(b -a)$ or calculate $s$ and $c + s(d - c)$ to get the point of intersection.

                                    This is a more numerically stable approach to the problem.







                                    share|cite|improve this answer












                                    share|cite|improve this answer



                                    share|cite|improve this answer










                                    answered 2 hours ago









                                    Paul SinclairPaul Sinclair

                                    20.7k21543




                                    20.7k21543



























                                        draft saved

                                        draft discarded
















































                                        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.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3176543%2fintersection-point-of-2-lines-defined-by-2-points-each%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

                                        Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                                        Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                                        Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її