draw method

void draw(
  1. Canvas canvas,
  2. Color color,
  3. double length, {
  4. bool drawArrowHead = true,
})

Implementation

void draw(Canvas canvas, Color color, double length, {bool drawArrowHead = true}) {
  Shape.paint.color = color;

  final o = origin.offset();
  final tip = pointAt(length);
  final t = tip.offset();

  Shape.paint.style = PaintingStyle.fill;
  canvas.drawCircle(o, 4, Shape.paint);

  Shape.paint.style = PaintingStyle.stroke;
  canvas.drawLine(o, t, Shape.paint);

  if (drawArrowHead) {
    const arrowLen = 12.0;
    const arrowAngle = 0.45;
    final dx = -direction.x * arrowLen;
    final dy = -direction.y * arrowLen;
    final ca = cos(arrowAngle);
    final sa = sin(arrowAngle);

    canvas.drawLine(t, Offset(tip.x + dx * ca - dy * sa, tip.y + dy * ca + dx * sa), Shape.paint);
    canvas.drawLine(t, Offset(tip.x + dx * ca + dy * sa, tip.y + dy * ca - dx * sa), Shape.paint);
  }
}