Я задал несколько вопросов здесь и увидел эту геометрическую форму, упомянутую несколько раз среди других геодезических фигур, но мне любопытно, как именно я могу генерировать один из точек xyz?Как создать разделенный икосаэдр?
ответ
Here - одна из ссылок, которую я использовал для разделенных икосаэдров, основанных на Красной книге OpenGL. BSD-лицензия source code на мое приложение iPhone Molecules содержит код для генерации простых икосаэдров и их загрузку в объект буфера вершин для OpenGL ES. Я еще не включил подразделение для улучшения качества рендеринга, но это в моих планах.
Это было долгое время, но я считаю, что это код, который я основал. Это получилось неплохо. В итоге у меня был трехмерный теннисный мяч, который исказился при ударе (невозможно сделать с gluSphere). –
Что делает этот код: Добавление простой икосферы, разделение, затем нормализация - не дает ровно равномерного распределения (треугольники будут немного меньше, чем ближе к исходным вершинам). – ideasman42
Есть учебник here.
Суть идеи состоит в том, чтобы начать с икосаэдра (который имеет 20 треугольных граней) и многократно разделить каждую треугольную грань на более мелкие треугольники. На каждом этапе каждая новая точка смещается радиально, поэтому это правильное расстояние от центра.
Количество этапов будет определять, сколько треугольников сгенерировано, и, следовательно, как близко полученная сетка будет к сфере.
Теперь добавлено резюме связанной статьи (я не думаю, что я знал это правило 6 лет назад ...) –
извините, это был законченный ответ из очереди просмотра - я даже не заметил '09 год печать на ответ. Спасибо за обновление. – LittleBobbyTables
Чтобы обладать сферой, большинство людей подразделяют точки линейно, но это не создает округлую форму.
Для округлой тесселяции вращайте две точки через ряд оборотов.
- Поворот второй точки вокруг г (по г угла точки 1) до 0
- вращения второй точки вокруг у (по у угла точки 1) до 0 (это логически ставит точку 1 на Северный полюс).
- Поверните вторую точку вокруг z до 0 (это логически помещает точку 1 на плоскость x/y, которая теперь становится единичным кругом).
- Найдите полуугольник, вычислите x и y для новой 3-й точки, пункт 3.
- Выполните встречные вращения в обратном порядке для шагов 3), 2) и 1), чтобы установить третью точку на его назначения.
Существуют также некоторые математические соображения для значений вблизи каждого из ближайших местоположений, таких как северный и южный полюс, а также самые правые и левые и самые левые и самые левые позиции , поэтому сначала проверьте их и выполните дополнительное вращение на pi/4 (45 градусов), если они находятся в этих местах. Это предотвращает излишние вычисления математических библиотек с плавающей запятой и создает нестандартные значения для atan2() и других функций триггера.
Надеюсь, это поможет! :-)
- 1. Икосаэдр, соединяющий краевые углы
- 2. Как создать разделенный pdb из статической библиотеки?
- 3. Чтобы создать разделенный вид в android
- 4. Разноцветный икосаэдр в OpenGL с использованием Glut
- 5. ggplot проекции Dymaxion/Airocean (икосаэдр) Карта
- 6. создать список, разделенный запятой в xtend
- 7. Создать разделенный запятой из списка столбцов Excel
- 8. Как создать список, разделенный запятыми, из нескольких элементов выбора Javascript
- 9. Как создать разделенный запятыми список с помощью XSLT
- 10. Как создать разделенный запятыми список из таблицы в SQL CE?
- 11. Как правильно создать класс шаблона, разделенный на 2 файла
- 12. файл, разделенный запятой
- 13. Как получить ввод, разделенный пробелами
- 14. Как разделить файл, разделенный пробелом?
- 15. как изменить разделенный запятыми список
- 16. Создать запрос, разделенный запятой, с двумя таблицами join
- 17. Найти проекцию вектора на икосаэдр или на его развернутую поверхность
- 18. Список, разделенный запятой
- 19. SQL Четкая разделенный запятыми список
- 20. Что такое «разделенный мьютекс»?
- 21. Список, разделенный запятой SQL
- 22. Переадресованный ввод, разделенный пробелами
- 23. SQL Server, разделенный запятой
- 24. Разделенный вид без проверки
- 25. Разделить адрес, разделенный запятой
- 26. текст, разделенный на абзац
- 27. Письма в разделенный массив
- 28. Разделенный div под div
- 29. разбор пробельных полей, разделенный
- 30. разделенный запятой foreach
Существует учебник [здесь] (http://www.donhavey.com/blog/tutorials/tutorial-3-the-icosahedron-sphere/). –