Maison >développement back-end >Golang >Combiner deux numéros d'index

Combiner deux numéros d'index

WBOY
WBOYavant
2024-02-06 10:18:041181parcourir

Combiner deux numéros dindex

Contenu des questions

Contexte

Un cube

3D a 12 边和 8 angles.

Indice de point de coin

8 角点已索引 07.

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

Indice de bord

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
}

Combinez deux numéros d'index

Je veux dessiner un tétraèdre à l'intérieur d'un cube 3D. Pour décrire un tétraèdre, je peux utiliser les indices des côtés et des angles. Par exemple, un tétraèdre sera composé d'angles 0、边 0、边 3 和边 8.

Question

Mon problème est le numéro d'index. Je ne sais pas comment combiner l'index du côté avec l'index du coin. J'ai deux options de numérotation d'index.

Option 1 : Ficelle

Une option consiste à utiliser des chaînes pour former le tétraèdre. Par exemple, j'utilise le préfixe c 前缀作为角索引,使用 e comme index de bord :

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

Mais travailler avec des chaînes n'est pas aussi simple qu'une simple indexation d'entiers.

Option 2 : Déplacer l'index

Une autre option consiste à modifier l'indice de bord de 0 保留到 11,但移动角的索引。因此,角点将从 0+12 索引到 7+12,即从 1219. En utilisant cette option, le même tétraèdre ressemblera à ceci :

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

ou :

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

Mais cette option va gâcher le reste de mon code et rendre mon code difficile à lire.

Remarques

  1. Un tétraèdre ne consiste pas toujours en 1 角和 3 边组成。组合是任意的。但角和边的总数始终为 4.
  2. L'ordre d'index des tétraèdres est important.

Question

Existe-t-il un moyen pratique de conserver les numéros d'index d'origine des bords et des coins ? Est-il possible de représenter un tétraèdre par les indices de ses côtés et de ses angles à la fois ?

Je cherche des idées...


Bonne réponse


Au final, j'ai choisi l'indexation mobile. L'indice du bord 011 ,角的索引 1219 .

Je dois le faire car la combinaison des côtés et des coins est arbitraire. De plus, l’ordre des index est également critique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer