Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gabungkan dua nombor indeks

Gabungkan dua nombor indeks

WBOY
WBOYke hadapan
2024-02-06 10:18:041130semak imbas

Gabungkan dua nombor indeks

Kandungan soalan

Latar belakang

Kubus

3d mempunyai 12 边和 8 sudut.

Indeks mata penjuru

8 角点已索引 07.

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

Indeks Tepi

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
}

Gabungkan dua nombor indeks

Saya mahu melukis tetrahedron di dalam kiub 3d. Untuk menerangkan tetrahedron, saya boleh menggunakan indeks sisi dan sudut. Sebagai contoh, tetrahedron akan terdiri daripada sudut 0、边 0、边 3 和边 8.

Soalan

Masalah saya ialah nombor indeks. Saya tidak tahu bagaimana untuk menggabungkan indeks sisi dengan indeks sudut. Saya mempunyai dua pilihan penomboran indeks.

Pilihan 1: Rentetan

Satu pilihan ialah menggunakan tali untuk membentuk tetrahedron. Contohnya, saya menggunakan awalan c 前缀作为角索引,使用 e sebagai indeks tepi:

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

Tetapi bekerja dengan rentetan tidak semudah pengindeksan integer yang mudah.

Pilihan 2: Indeks Bergerak

Pilihan lain ialah menukar indeks tepi daripada 0 保留到 11,但移动角的索引。因此,角点将从 0+12 索引到 7+12,即从 1219. Menggunakan pilihan ini, tetrahedron yang sama akan kelihatan seperti ini:

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

atau:

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

Tetapi pilihan ini akan mengacaukan selebihnya kod saya dan menjadikan kod saya sukar dibaca.

Nota

  1. Tetrahedron tidak selalu terdiri daripada 1 角和 3 边组成。组合是任意的。但角和边的总数始终为 4.
  2. Susunan indeks tetrahedron adalah penting.

Soalan

Adakah terdapat cara yang mudah untuk mengekalkan nombor indeks asal tepi dan bucu? Adakah mungkin untuk mewakili tetrahedron dengan indeks sisi dan sudutnya pada masa yang sama?

Mencari idea...


Jawapan betul


Akhirnya saya memilih pengindeksan mudah alih. Indeks tepi 011 ,角的索引 1219 .

Saya terpaksa melakukan ini kerana gabungan sisi dan bucu adalah sewenang-wenangnya. Di samping itu, susunan indeks juga adalah kritikal.

Atas ialah kandungan terperinci Gabungkan dua nombor indeks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam