Алгоритм окружности Брезенхэма в 3D? - PullRequest
1 голос
/ 20 марта 2012

Итак, я пытаюсь нарисовать сферу из отдельных «блоков».Мне нужно, чтобы это было сделано с целыми числами.Я пытаюсь уклониться от триггерных функций из-за этого.Алгоритм окружности Брезенхэма - единственное, что мне кажется разумным на данный момент, но я не могу придумать, как заставить его работать в 3-х измерениях.

Я также хочу, чтобы это работало и для эллипсоидов.

Кроме того, из любопытства мне было интересно, как этот алгоритм может работать в N измерениях?Очевидно, что для этого нет практического применения (по крайней мере, я так думаю), но мне все равно любопытно.

1 Ответ

1 голос
/ 20 марта 2012

Вам, вероятно, придется рисовать сферу слоями. Для сферы с радиусом R, центрированной на CX, CY, CZ, самый нижний блок будет в CX, CY, (CZ-R). По мере продвижения на один уровень вверх, тестируйте [PX + 1, PX, PX-1], [PY + 1, PY, PY-1], PZ + 1 (здесь «P» означает «Plotted», чтобы увидеть, какой из них ближе всего к расстоянию R от CX, CY, CZ.

Для каждого отдельного слоя я бы, вероятно, использовал (3D) расстояние от CX, CY, CZ, потому что это немного проще. Существует также немало симметрии для использования, чтобы уменьшить количество необходимых вычислений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...