一个 3D 立方体有
12
个边和 8
个角。
8
角已经被索引0
到7
.
7---------6
/| /|
/ | / |
4---------5 |
| | | |
| 3------|--2
| / | /
|/ |/
0---------1
11
边已经从 0
到 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
}
我想在 3D 立方体中绘制四面体。为了描述四面体,我可以使用边角索引。例如,一个四面体将由角
0
、边 0
、边 3
和边 8
组成。
我的问题是索引编号。我不知道如何将边的索引与角的索引结合起来。我有两个索引编号选项。
一种选择是使用字符串组成四面体。例如,我使用角索引的
C
前缀和边索引的E
前缀:
var tehtrahedron = [4]string{"C0", "E0", "E3", "E8"}
但是使用字符串并不像简单的整数索引那么容易。
另一种选择是将边的索引从
0
保持到11
,但移动角的索引。因此,角将从 0+12
到 7+12
进行索引,即从 12
到 19
。使用此选项,相同的四面体将如下所示:
var tehtrahedron = [4]int{0+12, 0, 3, 8}
或:
var tehtrahedron = [4]int{12, 0, 3, 8}
但是这个选项会弄乱我的其余代码,并使我的代码难以阅读。
有没有方便的方法让边角保留原来的索引编号? 并且同时能够通过边角索引来表示四面体?
寻找一些想法...