Додекаэдр из символов для мини-игры "Игра с Нулём»".
Бросаешь 12-гранный кубик: на 11 гранях - ресурсы, а на одной - полное обнуление прогресса в основной игре. Рискнули бы?
Координаты вершин додекаэдра со списком ребер и граней сходу не нашел. Вычислял сам. Если будет полезно, то вот массивы и вычисления для додекаэдра, вписанного в сферу единичного радиуса.
// Verteсes
Vector3[] verts = new Vector3[] {
new Vector3(0.577350f, 0.577350f, 0.577350f), // v1
new Vector3(0.577350f, 0.577350f, -0.577350f), // v2
new Vector3(0.577350f, -0.577350f, 0.577350f), // v3
new Vector3(0.577350f, -0.577350f, -0.577350f), // v4
new Vector3(-0.577350f, 0.577350f, 0.577350f), // v5
new Vector3(-0.577350f, 0.577350f, -0.577350f), // v6
new Vector3(-0.577350f, -0.577350f, 0.577350f), // v7
new Vector3(-0.577350f, -0.577350f, -0.577350f),// v8
new Vector3(0, 0.934172f, 0.356822f), // v9
new Vector3(0, 0.934172f, -0.356822f), // v10
new Vector3(0, -0.934172f, 0.356822f), // v11
new Vector3(0, -0.934172f, -0.356822f), // v12
new Vector3(0.356822f, 0, 0.934172f), // v13
new Vector3(0.356822f, 0, -0.934172f), // v14
new Vector3(-0.356822f, 0, 0.934172f), // v15
new Vector3(-0.356822f, 0, -0.934172f), // v16
new Vector3(0.934172f, 0.356822f, 0), // v17
new Vector3(0.934172f, -0.356822f, 0), // v18
new Vector3(-0.934172f, 0.356822f, 0), // v19
new Vector3(-0.934172f, -0.356822f, 0) // v20
};
// Calc edges
const float edgeLength = 0.7136f;
const float epsilon = 0.0001f;
var edges = new List<(int a, int b)>();
Vector3 v1, v2;
float dx, dy, dz, dist;
// Check all pairs of vertices
for (int i = 0; i < verts.Length; i++)
for (int j = i + 1; j < verts.Length; j++) {
v1 = verts[i];
v2 = verts[j];
dx = v2.x - v1.x;
dy = v2.y - v1.y;
dz = v2.z - v1.z;
dist = Mathf.Sqrt(dx * dx + dy * dy + dz * dz);
if (Mathf.Abs(dist - edgeLength) < epsilon)
edges.Add((i, j));
}
// Faces
int[,] facesIDS = new int[12, 5] {
{ 0, 16, 1, 9, 8 },
{ 12, 0, 16, 17, 2 },
{ 8, 0, 12, 14, 4 },
{ 1, 16, 17, 3, 13 },
{ 9, 1, 13, 15, 5 },
{ 10, 11, 3, 17, 2 },
{ 2, 12, 14, 6, 10 },
{ 3, 11, 7, 15, 13 },
{ 6, 14, 4, 18, 19 },
{ 4, 8, 9, 5, 18 },
{ 5, 15, 7, 19, 18 },
{ 6, 19, 7, 11, 10 }};
Сделал и возвращаюсь к допилу версии для плейтеста. Чуть-чуть осталось. Заходите добавить в желаемое и записаться на плейтест.