detect_collision.dart
535 Bytes
import 'package:flutter/material.dart';
bool isPointInPolygon(Offset point, List<Offset> polygon) {
int i;
int j = polygon.length - 1;
bool inside = false;
for (i = 0; i < polygon.length; j = i++) {
if (((polygon[i].dy > point.dy) != (polygon[j].dy > point.dy)) &&
(point.dx <
(polygon[j].dx - polygon[i].dx) *
(point.dy - polygon[i].dy) /
(polygon[j].dy - polygon[i].dy) +
polygon[i].dx)) {
inside = !inside;
}
}
return inside;
}