لماذا لا تحترم طريقة الرسم الخاصة بالرسومات سمات الحد؟

StackOverflow https://stackoverflow.com/questions/8401476

سؤال

أرغب في إنشاء حد مخصص بزوايا مستديرة.

الشفرة -

Genacodicetagpre

النتيجة -

أدخل وصف الصورة هنا

كما ترى ، يتجاهل رمز الترقيم العام تمامًا سمات رمز الترقيم العام ورمز الترقيم العام.لماذا؟

هل كانت مفيدة؟

المحلول

كما هو موضح في تعلم Java 2D ، الجزء 1 :

رمز ترميز عام: هذا يجعل غطاءًا دائريًا يتمركز في نقطة النهاية ، بقطر عرض القلم.

الكلمة الأساسية هي "توسيط". أعتقد أنه دائمًا عند الرسم بضربات سميكة ، فإن Java2D ستركز سماكة الخط على طول الخط الافتراضي الرقيق للغاية بين مراكز البكسل في إحداثيات البداية والنهاية. على سبيل المثال ، عند رسم خط أزرق عمودي بسمك 7 بكسل ، يرسم Java2D 3 بكسل على كل جانب من جوانب مقطع الخط الافتراضي الذي يتم رسمه.

في مثالك ، السُمك 5 بكسل. تحتاج إلى موازنة الإحداثيات لرسم الحد بالكامل داخل مقطع الرسومات. بالتحرك بمقدار 2 بكسل (أو رمز العلامة العامة) ، تصبح الزوايا الدائرية مرئية:

لقطة شاشة لواجهة المستخدم الرسومية بعد التحرك بمقدار 2 بكسل

Genacodicetagpre

نصائح أخرى

المشكلة هي الإزاحة: أنت تقطع الحد في المنتصف فعليًا حتى تظهر الزوايا غير دائرية.مع الأخذ في الاعتبار (هنا فقط للإزاحة ، تحتاج إلى ضبط العرض أيضًا) Genacodicetagpre

تعديل

عد وحدات البكسل غير الصحيحة الثابتة :-)

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