سؤال

أبحث عن صيغة تعطيني كل من 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 في كل تكرار ، ولكن لبعض القيمة الوثيقة على الفور.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top