Вопрос

Я ищу формулу, которая даст мне все 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 в каждой итерации, но для некоторого ближайшего значения сразу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top