Получить все вектор2 очки в радиусе
Вопрос
Я ищу формулу, которая даст мне все Vector2 Points
в пределах определенного радиуса, учитывая центр.
По сути, я пытаюсь сделать, это изменить цвет каждого пикселя в текстуру 256 x 256, которая находится в определенном радиусе из определенного пикселя (с использованием игрового двигателя Unity3D). Язык программирования на самом деле не имеет значения, так как я могу преобразовать его в то, что я могу использовать.
Решение
Позволять cx
и cy
быть центром х и центром у и 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 в каждой итерации, но для некоторого ближайшего значения сразу.
Не связан с StackOverflow