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

Combiner deux numéros d'index

WBOY
Libérer: 2024-02-06 10:18:04
avant
1211 Les gens l'ont consulté

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
Copier après la connexion

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
}
Copier après la connexion

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"}
Copier après la connexion

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}
Copier après la connexion

ou :

var tehtrahedron = [4]int{12, 0, 3, 8}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal