Heim >Backend-Entwicklung >Golang >Kombinieren Sie zwei Indexzahlen

Kombinieren Sie zwei Indexzahlen

WBOY
WBOYnach vorne
2024-02-06 10:18:041181Durchsuche

Kombinieren Sie zwei Indexzahlen

Frageninhalt

Hintergrund

Ein

3D-Würfel hat 12 边和 8Winkel.

Eckpunktindex

8 角点已索引 07.

7---------6
     /|        /|
    / |       / |
   4---------5  |
   |  |      |  |
   |  3------|--2
   | /       | /
   |/        |/
   0---------1

Kantenindex

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
}

Kombinieren Sie zwei Indexzahlen

Ich möchte ein Tetraeder in einen 3D-Würfel zeichnen. Um ein Tetraeder zu beschreiben, kann ich die Indizes der Seiten und Winkel verwenden. Ein Tetraeder besteht beispielsweise aus Winkeln 0、边 0、边 3 和边 8.

Frage

Mein Problem ist die Indexnummer. Ich weiß nicht, wie ich den Index der Seite mit dem Index der Ecke kombinieren soll. Ich habe zwei Optionen für die Indexnummerierung.

Option 1: String

Eine Möglichkeit besteht darin, Schnüre zur Bildung des Tetraeders zu verwenden. Zum Beispiel verwende ich das Präfix c 前缀作为角索引,使用 e als Kantenindex:

var tehtrahedron = [4]string{"c0", "e0", "e3", "e8"}

Aber die Arbeit mit Strings ist nicht so einfach wie die einfache Ganzzahlindizierung.

Option 2: Index verschieben

Eine weitere Möglichkeit besteht darin, den Kantenindex von 0 保留到 11,但移动角的索引。因此,角点将从 0+12 索引到 7+12,即从 1219 zu ändern. Mit dieser Option sieht das gleiche Tetraeder so aus:

var tehtrahedron = [4]int{0+12, 0, 3, 8}

oder:

var tehtrahedron = [4]int{12, 0, 3, 8}

Aber diese Option wird den Rest meines Codes durcheinander bringen und die Lesbarkeit meines Codes erschweren.

Notizen

  1. Ein Tetraeder besteht nicht immer aus 1 角和 3 边组成。组合是任意的。但角和边的总数始终为 4.
  2. Die Indexreihenfolge der Tetraeder ist wichtig.

Frage

Gibt es eine praktische Möglichkeit, die ursprünglichen Indexnummern von Kanten und Ecken beizubehalten? Ist es möglich, ein Tetraeder gleichzeitig durch die Indizes seiner Seiten und Winkel darzustellen?

Suche nach Ideen...


Richtige Antwort


Am Ende habe ich mich für die mobile Indexierung entschieden. Der Index der Kante 011 ,角的索引 1219 .

Ich muss das machen, weil die Kombination von Seiten und Ecken willkürlich ist. Darüber hinaus ist auch die Reihenfolge der Indizes von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonKombinieren Sie zwei Indexzahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen