Получить все точки Vector2 в радиусе - PullRequest
0 голосов
/ 11 июня 2010

Я ищу формулу, которая даст мне все Vector2 Points в пределах определенного радиуса с учетом центра.

По сути, я пытаюсь изменить цвет каждого пикселя в текстуре 256 x 256, которая находится в пределах определенного радиуса от определенного пикселя (с помощью игрового движка Unity3d). Язык программирования на самом деле не имеет значения, поскольку я, вероятно, могу преобразовать его во что-то, что я могу использовать.

1 Ответ

1 голос
/ 11 июня 2010

Пусть cx и cy - центр х и центр y, а r - радиус.

r2 = r * r;
for each dy = 0 ... r
    dx = 0
    while (dx*dx + dy*dy <= r2)
        within(cx+dx, cy+dy)
        within(cx-dx, cy+dy)
        within(cx+dx, cy-dy)
        within(cx-dx, cy-dy)
        dx++

Оптимизация будет заключаться не в том, чтобы сбрасывать dx в 0 на каждой итерации, а сразу в более близкое значение.

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