Frage

Ich bin auf der Suche nach einer Formel, die mir in einem gewissen Radius des Zentrum gegeben alle der Vector2 Points geben.

Im Grunde, was ich versuche die Farbe jeden Pixel zu tun ist, ändert in einer 256 x 256-Textur, die von einem bestimmten Pixel in einem gewissen Radius ist (Mit Hilfe des Unity3d Game Engine). Programmiersprache ist nicht wirklich wichtig, wie ich es wahrscheinlich etwas umwandeln kann ich verwenden kann.

War es hilfreich?

Lösung

Lassen Sie cx und cy Zentrum x und y Zentrum sein und r der Radius sein.

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++

Eine Optimierung wäre, nicht zurückgesetzt dx auf 0 in jeder Iteration, aber bis zu einem gewissen näheren Wert sofort.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top