compassDirections function
Implementation
List<Vector3> compassDirections({int numSides = 4, Vector3 startVec = RIGHT}) {
var angle = TAU / numSides;
var rootsOfUnity = [
for (var k in range(end: numSides)) Complex.exp(angle: angle * k)
];
var complexResults = [
for (var u in rootsOfUnity)
u * Complex(real: startVec.x, imaginary: startVec.y)
];
return [for (var c in complexResults) Vector3(c.real, c.imaginary, 0)];
}