stackLine function

List<SdlxFPoint> stackLine(
  1. SdlxFPoint p1,
  2. SdlxFPoint p2
)

Implementation

List<SdlxFPoint> stackLine(SdlxFPoint p1, SdlxFPoint p2) {
  final stack = <SdlxFPoint>[];
  if (p1 == p2) {
    stack.add(p1);
  } else {
    final dx = p2.x - p1.x;
    final dy = p2.y - p1.y;
    final length = math.sqrt(dx * dx + dy * dy);
    final rad = math.atan2(dy, dx);
    for (var l = 0; l < length; l++) {
      final x = p1.x + l * math.cos(rad);
      final y = p1.y + l * math.sin(rad);
      stack.add(SdlxFPoint(x, y));
    }
  }
  return stack.toList().toList();
}