I asked a similar question here before, which I'll link to here. I realized, however, that I needed to extend the question from the angle between a point and a line segment to the angle between 2 line segments. My question is this:

Given two line segments $L_1$ and $L_2$ in $\mathbb{R}^2$, each represented by two points, and point $C$ not contained by either $L_1$ or $L_2$, $L_1$ rotates about $C$, its full rotation forming an annulus (doughnut-like shape). Assuming that some portion of $L_2$ is inside this annulus (that is, rotating $L_1$ about $C$ will cause $L_1$ to intersect $L_2$), I need to find the minimum angle that $L_1$ needs to rotate about $C$ so that $L_2$ intersects $L_1$.

Note that this is direction dependent. Given two line segments that are known to intersect each other after some rotation, the minimum angle to rotate in the counter-clockwise direction could be different from the minimum angle in the clockwise direction.

I've established how to calculate the angle of intersection between one line segment rotating into a point (as per the thread I've linked above). Perhaps I need to break down the edge-to-edge rotation into multiple edge-to-point rotations, and then compare the results to find the minimum angle.

Thanks for any help/suggestions! rbjacob


Hint: I would draw minimal sectors $S_i$ with common vertex at $C$ bounding the segments $L_i$. Then the minimal angle required is the smallest of the two angles between the sectors (there is an "inside" and an "outside" angle between sectors that meet only at their common vertex).

Note that either of the sectors $S_i$ could be degenerate, but this doesn't affect the construction. This will occur when the endpoints of line segment $L_i$ and $C$ are all collinear.

  • $\begingroup$ Sorry for the late response. This solution is a start but the angle between the sectors is not the angle with which the line segment needs to be rotated to intersect the other. See this image. Do you have any other ideas? $\endgroup$ – rbjacob Nov 25 '18 at 17:22
  • $\begingroup$ Oh, I misunderstood. So you want to continue the rotation until the original segments meet. In that case you will need to find the point on one segment which is exactly the same distance from the center of rotation as the near endpoint of the other segment, right? $\endgroup$ – MPW Nov 25 '18 at 17:36
  • $\begingroup$ Correct, but it may not necessarily be the near endpoint. It could also be the far endpoint or any point in-between, depending upon where one edge will intersect the other and the direction of rotation. $\endgroup$ – rbjacob Nov 25 '18 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.