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
$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.
linear-algebra matrices python
$endgroup$
add a comment |
$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.
linear-algebra matrices python
$endgroup$
add a comment |
$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.
linear-algebra matrices python
$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
linear-algebra matrices python
edited 4 hours ago
Ethan Bolker
45.6k553120
45.6k553120
asked 5 hours ago
crazicrafter1crazicrafter1
247
247
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
$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.)
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "69"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%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
$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.)
$endgroup$
add a comment |
$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.)
$endgroup$
add a comment |
$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.)
$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.)
edited 3 hours ago
answered 4 hours ago
Ethan BolkerEthan Bolker
45.6k553120
45.6k553120
add a comment |
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 3 hours ago
mr_e_manmr_e_man
1,1501424
1,1501424
add a comment |
add a comment |
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 1 hour ago
Paul SinclairPaul Sinclair
20.7k21543
20.7k21543
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3176543%2fintersection-point-of-2-lines-defined-by-2-points-each%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown