Home > Article > Backend Development > Combine two index numbers
3d cube has 12
sides and 8
angles.
8
Corner point indexed 0
to 7
.
7---------6 /| /| / | / | 4---------5 | | | | | | 3------|--2 | / | / |/ |/ 0---------1
11
Edge has been indexed from 0
to 11
.
// these are the corner pairs for the edges: var mcpairtable = [12][2]int{ {0, 1}, // edge 0 {1, 2}, // edge 1 {2, 3}, // edge 2 {3, 0}, // edge 3 {4, 5}, // edge 4 {5, 6}, // edge 5 {6, 7}, // edge 6 {7, 4}, // edge 7 {0, 4}, // edge 8 {1, 5}, // edge 9 {2, 6}, // edge 10 {3, 7}, // edge 11 }
I want to draw a tetrahedron inside a 3d cube. To describe a tetrahedron, I can use the indices of the sides and angles. For example, a tetrahedron would consist of angles 0
, sides 0
, sides 3
, and sides 8
.
My problem is the index number. I don't know how to combine the index of the side with the index of the corner. I have two index numbering options.
One option is to use strings to form the tetrahedrons. For example, I use the c
prefix for the corner index and the e
prefix for the edge index:
var tehtrahedron = [4]string{"c0", "e0", "e3", "e8"}
But dealing with strings is not as easy as simple integer indexing.
Another option is to keep the index of the sides from 0
to 11
, but move the index of the corners. Therefore, the corner point will be indexed from 0 12
to 7 12
, i.e. from 12
to 19
. Using this option, the same tetrahedron will look like this:
var tehtrahedron = [4]int{0+12, 0, 3, 8}
or:
var tehtrahedron = [4]int{12, 0, 3, 8}
But this option will mess up the rest of my code and make my code difficult to read.
1
corners and 3
sides. Combinations are arbitrary. But the total number of angles and sides is always 4
. Is there a convenient way to preserve the original index numbers of edges and corners? Is it possible to represent a tetrahedron by the indices of its sides and angles at the same time?
Looking for some ideas...
In the end I chose mobile indexing. The edges are indexed 0
to 11
and the corners are indexed 12
to 19
.
I have to do this because the combination of sides and corners is arbitrary. In addition, the order of the indexes is also critical.
The above is the detailed content of Combine two index numbers. For more information, please follow other related articles on the PHP Chinese website!