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

Can you really stack all of this on an Opportunity Attack?

How to determine what difficulty is right for the game?

What are these boxed doors outside store fronts in New York?

Has there ever been an airliner design involving reducing generator load by installing solar panels?

Modeling an IP Address

What defenses are there against being summoned by the Gate spell?

Definite integral giving negative value as a result?

Why can't I see bouncing of a switch on an oscilloscope?

Client team has low performances and low technical skills: we always fix their work and now they stop collaborate with us. How to solve?

How to format long polynomial?

How old can references or sources in a thesis be?

How is it possible to have an ability score that is less than 3?

Paid for article while in US on F-1 visa?

Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)

Perform and show arithmetic with LuaLaTeX

How much of data wrangling is a data scientist's job?

Why is consensus so controversial in Britain?

How to draw a waving flag in TikZ

Are the number of citations and number of published articles the most important criteria for a tenure promotion?

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

When a company launches a new product do they "come out" with a new product or do they "come up" with a new product?

Accidentally leaked the solution to an assignment, what to do now? (I'm the prof)

Maximum likelihood parameters deviate from posterior distributions

Why can't we play rap on piano?



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 5 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 3 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 3 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 1 hour 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

                                        How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

                                        Българска екзархия Съдържание История | Български екзарси | Вижте също | Външни препратки | Литература | Бележки | НавигацияУстав за управлението на българската екзархия. Цариград, 1870Слово на Ловешкия митрополит Иларион при откриването на Българския народен събор в Цариград на 23. II. 1870 г.Българската правда и гръцката кривда. От С. М. (= Софийски Мелетий). Цариград, 1872Предстоятели на Българската екзархияПодмененият ВеликденИнформационна агенция „Фокус“Димитър Ризов. Българите в техните исторически, етнографически и политически граници (Атлас съдържащ 40 карти). Berlin, Königliche Hoflithographie, Hof-Buch- und -Steindruckerei Wilhelm Greve, 1917Report of the International Commission to Inquire into the Causes and Conduct of the Balkan Wars

                                        Category:Tremithousa Media in category "Tremithousa"Navigation menuUpload media34° 49′ 02.7″ N, 32° 26′ 37.32″ EOpenStreetMapGoogle EarthProximityramaReasonatorScholiaStatisticsWikiShootMe