Квадратна структура даних (Делоне / Вороной)


18

2 питання для обчислювальних геометрів або алгебраїстів:

Я тільки починаю занурюватися в обчислювальну геометрію і люблю це =)

Я намагаюся прочитати відому статтю Гібаса та Столфі під назвою "Примітиви для маніпулювання загальними підрозділами та обчислення діаграм Вороного" , щоб реалізувати алгоритм триангуляції Делоне. Мені спокуса пропустити всі теоретичні речі і просто прочитати опис їх чотиригранної структури даних, щоб заощадити час. Однак я думаю, що варто того, щоб зрозуміти всю математику в статті, якщо структура широко використовується або просто тому, що вона може бути красивою.

Математика для мене трохи густа. Я не зовсім неосвічений щодо топології, але опис їх крайової алгебри вимагає знання абстрактної алгебри, якої у мене немає.

Мої два питання: Які ще програми додаткової структури з чотирьох крайових є, крім обчислень Delaunay / Voronoi? Це здається надзвичайно потужним інструментом.

Друге питання; Що таке абстрактна алгебра? Було б чудово, якби ви могли дати мені посилання на вступ до абстрактної алгебри, достатньо, щоб я міг зрозуміти розділ їх крайової алгебри.

Дякую!


3
Просто заповнити прогалини: абстрактна алгебра - це вивчення множин елементів, що дотримуються певних правил. Як ви могли здогадатися, яким правилам задовольняють ці множини, є такі властивості, як закриття, елементи тотожності, існування унікальних обертів, і тому що випливає комутативність, асоціативність тощо. Це вивчення алгебри на множинах, які не обов'язково поводяться як реальні числа (хороший приклад - перестановки).
Росс Снайдер


Я думаю, моє друге запитання було трохи пропущено. Я знаю деяку теорію груп. Я знаю, що таке кільце і поле. Це просто , що в статті вони визначають в абстрактній алгебрі: «Ребро алгебра є абстрактна алгебра (Е, Е *, ONEXT, гниль, Фліп) , що задовольняють властивості E1-E5 і F1-F5»
bigmonachus

[...] і я поняття не маю, що це означає. Це не алгебра над полем ?
бігмонах

Відповіді:


32

Я думаю, що формалізм "крайньої алгебри" Гібаса та Столфі трохи непотрібний.

Все, що дійсно потрібно, це пам’ятати про відмінність між первинними та подвійними графами. Кожна грань первинного графіка має відповідну подвійну вершину f ; кожне ребро e первинного графа має відповідне подвійне ребро e ; і кожна вершина v первинного графіка має відповідну подвійну грань v ffeevv . Первинні ребра з'єднують первинні вершини та окремі первісні грані; подвійні ребра з'єднують подвійні вершини та окремі подвійні грані. Подвійне подвійне нічого - це оригінальна річ. Дивіться малюнок 4 на папері Гібаса та Столфі:

Первинні та подвійні графіки

etail(e)head(e)left(e)right(e)tail(e)left(e)

e дартса , Гібас та Столфі пов'язують три пов’язані дартси:

  1. tailNext(e)tail(e)e .
  2. flip(e)eleft(e)right(e)
  3. rotate(e)e на чверть, повернути проти годинникової стрілки навколо його середньої точки.

хвостикНадалі, обертати та перевертати

Ці три функції задовольняють всілякі чудові ідентичності, такі як:

  • right(tailNext(e))=left(e)
  • right(flip(e))=left(e)
  • right(rotate(e))=head(e)
  • flip(flip(e))=e
  • rotate(rotate(rotate(rotate(e))))=e
  • tailNext(rotate(tailNext(rotate(e))))=e

e Flip , імовірно, тому, що це ближче до декларативного коду e.Flip). Гібас і Столфі називають будь-яку трійку функцій, що задовольняють всі ці тотожності, крайовою алгеброю .

Більше того, враховуючи ці три функції, можна визначити кілька інших корисних функцій, як-от

  • reverse(e)=rotate(flip(rotate(e)))
  • leftNext(e)=rotate(tailNext(rotate(rotate(rotate(e)))))eleft(e)

Нарешті, знаючи ці функції, ви розповідаєте абсолютно все про топологію підрозділу, і будь-який багатокутний підрозділ будь-якої поверхні (орієнтується чи ні) може бути закодований за допомогою цих трьох функцій.

Квадратна структура даних є особливо зручним поданням графіку поверхні, що забезпечує доступ до всіх цих функцій, поряд з кількома іншими операціями постійного часу, такими як вставлення, видалення, стискання, розширення та гортання ребер; розщеплення або злиття вершин або граней; і додавання або видалення ручок або перехресних кришок.

Веселіться!


Я використовував OmniGraffle.
Jeffε
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.