Implementation
List<Offset>? get arrowFoot {
if (arrowPoint.dy < location.dy) {
if (arrowPoint.dx < center.dx) {
return [
Offset(location.dx + size.width / 5, location.dy),
Offset(location.dx + size.width * 2 / 5, location.dy),
];
} else {
return [
Offset(location.dx + size.width * 3 / 5, location.dy),
Offset(location.dx + size.width * 4 / 5, location.dy),
];
}
}
if (arrowPoint.dy > location.dy + size.height) {
if (arrowPoint.dx < center.dx) {
return [
Offset(location.dx + size.width * 2 / 5, location.dy + size.height),
Offset(location.dx + size.width / 5, location.dy + size.height),
];
} else {
return [
Offset(location.dx + size.width * 4 / 5, location.dy + size.height),
Offset(location.dx + size.width * 3 / 5, location.dy + size.height),
];
}
}
if (arrowPoint.dx < location.dx) {
if (arrowPoint.dy < center.dy) {
return [
Offset(location.dx, location.dy + size.height * 2 / 5),
Offset(location.dx, location.dy + size.height / 5),
];
} else {
return [
Offset(location.dx, location.dy + size.height * 4 / 5),
Offset(location.dx, location.dy + size.height * 3 / 5),
];
}
}
if (arrowPoint.dx > location.dx + size.width) {
if (arrowPoint.dy < center.dy) {
return [
Offset(location.dx + size.width, location.dy + size.height / 5),
Offset(location.dx + size.width, location.dy + size.height * 2 / 5),
];
} else {
return [
Offset(location.dx + size.width, location.dy + size.height * 3 / 5),
Offset(location.dx + size.width, location.dy + size.height * 4 / 5),
];
}
}
return null;
}