getEdgeNormal method
获取指定边的法向量(指向外侧)
Implementation
Offset getEdgeNormal(int edgeIndex) {
final corners = getCorners();
final corner1 = corners[edgeIndex % 6];
final corner2 = corners[(edgeIndex + 1) % 6];
// 边的方向向量
final edgeVector = Offset(corner2.dx - corner1.dx, corner2.dy - corner1.dy);
// 法向量(顺时针旋转90度,指向外侧)
// 从 (dx, dy) 顺时针旋转90度得到 (dy, -dx)
final normal = Offset(edgeVector.dy, -edgeVector.dx);
// 归一化
final length = math.sqrt(normal.dx * normal.dx + normal.dy * normal.dy);
return Offset(normal.dx / length, normal.dy / length);
}