احصل على جميع نقاط Vector2 داخل نصف القطر
سؤال
أبحث عن صيغة تعطيني كل من Vector2 Points
داخل دائرة نصف قطرها معينة بالنظر إلى المركز.
في الأساس ما أحاول القيام به هو تغيير لون كل بكسل في نسيج 256 × 256 الموجود داخل نصف قطر معين من بكسل معين (باستخدام محرك لعبة Unity3D). لغة البرمجة لا تهم حقًا ، حيث ربما يمكنني تحويلها إلى شيء يمكنني استخدامه.
المحلول
يترك cx
و cy
Be Center X و Center 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 في كل تكرار ، ولكن لبعض القيمة الوثيقة على الفور.
لا تنتمي إلى StackOverflow