How can I determine whether the 2 points $(a_x, a_y)$ and $(b_x, b_y)$ are on opposite sides of the line $(x_1,y_1)\to(x_2,y_2)$?
How to determine if 2 points are on opposite sides of a line
4 Answers
Writing $A$ and $B$ for the points in question, and $P_1$ and $P_2$ for the points determining the line ...
Compute the "signed" areas of the $\triangle P_1 P_2 A$ and $\triangle P_1 P_2 B$ via the formula (equation 16 here) $\frac{1}{2}\left|\begin{array}{ccc} x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ x_3 & y_3 & 1 \end{array}\right|$ with $(x_3,y_3)$ being $A$ or $B$. The points $A$ and $B$ will be on opposite sides of the line if the areas differ in sign, which indicates that the triangles are being traced-out in different directions (clockwise vs counterclockwise).
You can, of course, ignore the "$1/2$", as it has not affect the sign of the values. Be sure to keep the row-order consistent in the two computations, though.
Find the equation of the line. It should be of the form $ax + by + c = 0$. Given two points $(x_1, y_2)$ and $(x_2, y_2)$, plug these into that equation. They are on opposite side of the line if $ax_1 + by_1 + c < 0$ and $ax_2 + by_2 + c > 0$, or visa-versa.
Explicitly, they are on opposite sides iff $((y_1-y_2)(a_x-x_1)+(x_2-x_1)(a_y-y_1))((y_1-y_2)(b_x-x_1)+(x_2-x_1)(b_y-y_1)) < 0.$
-
0Appreciate the explicitness of your answer. Clearly I am no math geek :) Cheers! – 2012-06-25
$CD$ are on the opposite sides of $AB$ if and only if $\left(\overrightarrow{AB}\times\overrightarrow{AC}\right)\cdot\left(\overrightarrow{AB}\times\overrightarrow{AD}\right)<0$, where $\times$ is cross product and $\cdot$ is dot product.
-
0@martycohen Defined for an arbitrary embedding $\mathbb R^2\hookrightarrow\mathbb R^3$. – 2015-12-01