Fix circle/line intersection

This commit is contained in:
Jan Käberich 2022-08-21 22:51:48 +02:00
parent 71239842f6
commit 0281f13ba6

View File

@ -295,6 +295,11 @@ bool TracePolar::constrainLineToCircle(QPointF &a, QPointF &b, QPointF center, d
// adjust both points, order does not matter // adjust both points, order does not matter
a = inter1; a = inter1;
b = inter2; b = inter2;
} else if(!inter1betweenPoints && !inter2betweenPoints) {
// the line intersect the circle but outside of the segment defined by the points -> ignore
a += center;
b += center;
return false;
} else { } else {
// exactly one intersection point must lie between the two line points, otherwise we would have returned already // exactly one intersection point must lie between the two line points, otherwise we would have returned already
auto inter = inter1betweenPoints ? inter1 : inter2; auto inter = inter1betweenPoints ? inter1 : inter2;