Для тесселяции сферы большинство людей делят точки линейно, но это не дает округлую форму.
Для округленного тесселяции поверните две точки через серию поворотов.
- Повернуть вторую точку вокруг z (на угол z точки 1) до 0
- Поверните вторую точку вокруг y (на угол y точки 1) до 0 (это логически переводит точку 1 в северный полюс).
- Поверните вторую точку вокруг z на 0 (это логически переводит точку 1 в плоскость x / y, которая теперь становится единичным кругом).
- Найдите половину угла, вычислите x и y для новой 3-й точки, точка 3.
- Выполните встречные повороты в обратном порядке для шагов 3), 2) и 1), чтобы расположить 3-ю точку к месту назначения.
Существуют также некоторые математические соображения для значений вблизи каждого из местоположений, близких к 0, таких как северный и южный полюс, а также крайних правых и левых, крайних и крайних положений, поэтому проверьте те сначала и выполняют дополнительное вращение на pi / 4 (45 градусов), если они находятся в тех местоположениях. Это предотвращает сумасшедшие математические библиотеки с плавающей точкой и выдачу дико не символьных значений для atan2 () и других функций триггера.
Надеюсь, это поможет! :-)