createRectPathAroundLine method
Creates a rect around a narrow line
Implementation
@visibleForTesting
Path createRectPathAroundLine(Line line, double width) {
width = width / 2;
final normalized = line.normalize();
final verticalAngle = line.direction() + (math.pi / 2);
final verticalDirection =
Offset(math.cos(verticalAngle), math.sin(verticalAngle));
final startPoint1 = Offset(
line.from.dx -
(normalized * (width / 2)).dx -
(verticalDirection * width).dx,
line.from.dy -
(normalized * (width / 2)).dy -
(verticalDirection * width).dy,
);
final startPoint2 = Offset(
line.to.dx +
(normalized * (width / 2)).dx -
(verticalDirection * width).dx,
line.to.dy +
(normalized * (width / 2)).dy -
(verticalDirection * width).dy,
);
final startPoint3 = Offset(
startPoint2.dx + (verticalDirection * (width * 2)).dx,
startPoint2.dy + (verticalDirection * (width * 2)).dy,
);
final startPoint4 = Offset(
startPoint1.dx + (verticalDirection * (width * 2)).dx,
startPoint1.dy + (verticalDirection * (width * 2)).dy,
);
return Path()
..moveTo(startPoint1.dx, startPoint1.dy)
..lineTo(startPoint2.dx, startPoint2.dy)
..lineTo(startPoint3.dx, startPoint3.dy)
..lineTo(startPoint4.dx, startPoint4.dy)
..lineTo(startPoint1.dx, startPoint1.dy);
}