Holen Sie sich alle Vector2 Punkte innerhalb des Radius
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.
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