2012-03-19 6 views
5

मैं सीखने के लिए कुछ आकार बना रहा हूं और कुछ एंटी-एलाइजिंग की तरह धुंधला लगता है, और मैं किसी भी प्रभाव का उपयोग नहीं कर रहा हूं (मुझे अभी तक ये सबक नहीं मिलते हैं, lol)।जावाएफएक्स ग्राफिक्स "धुंधला" या एंटी-एलाइज्ड? (कोई प्रभाव नहीं उपयोग किया जाता है)

उदाहरण के लिए, मैं एक ब्लैक बैकग्राउड में एक पिक्सेल चौड़ाई के साथ एक सफेद रेखा खींचता हूं, लेकिन यह भूरा हो जाता है! यदि मैं चौड़ाई को 2px में बदलता हूं तो यह सफेद हो जाता है, लेकिन फिर भी वास्तव में परिभाषित नहीं किया जाता है।

जब मैं पाया था कि "googleing" सबकुछ था, तो आकार पर setSmooth(false) एक विधि थी, लेकिन इससे कोई फर्क नहीं पड़ता। क्या मुझे कुछ भी बदलना चाहिए या चरण या दृश्य पर अक्षम होना चाहिए, मुझे नहीं पता?

किसी भी मदद की सराहना की जाती है। सलाह में धन्यवाद ...

मेरे अंग्रेजी के बारे में खेद है कि अभी भी सुधार की जरूरत है ... लेकिन यह मेरी प्राकृतिक भाषा नहीं है।

उत्तर

3

देखें Shape प्रलेखन:

अधिकांश नोड्स केवल पूर्णांक अनुवाद उन्हें आवेदन किया है और अक्सर वे पूर्णांक का उपयोग कर परिभाषित कर रहे हैं और साथ ही निर्देशांक हो जाते हैं। के लिए यह सामान्य मामला, सीधे लाइन किनारों के साथ आकारों को भरता है कुरकुरा होता है क्योंकि वे पूर्णांक डिवाइस निर्देशांक पर पिक्सल के बीच दरारों के साथ लाइन करते हैं और इस प्रकार स्वाभाविक रूप से पूरे पिक्सल को कवर करते हैं।

दूसरी ओर, उन्हीं आकार पथपाकर अक्सर फजी को जन्म दे सकता रूपरेखा क्योंकि डिफ़ॉल्ट पथपाकर विशेषताएँ स्पष्ट दोनों कि डिफ़ॉल्ट स्ट्रोक चौड़ाई 1.0 निर्देशांक जो अक्सर वास्तव में 1 डिवाइस पिक्सेल का मानचित्रण और यह भी कि स्ट्रोक है की सीमा को बांधना चाहिए, जो कि सीमा के दोनों तरफ आधा गिर रहा है। चूंकि कई आम आकारों में सीमाएं सीधे पूर्णांक निर्देशांक पर गिरती हैं और उन पूर्णांक निर्देशांक अक्सर पूर्णांक डिवाइस स्थानों पर सटीक रूप से मानचित्र होते हैं, सीमाओं के परिणामस्वरूप पिक्सेल पंक्तियों और स्तंभों के ऊपर 50% कवरेज होता है एक या दूसरे पर 100% कवरेज की बजाय आकार की सीमा। इस प्रकार, भर सकता है आमतौर पर कुरकुरा हो सकता है, लेकिन स्ट्रोक अक्सर अस्पष्ट होते हैं। या निर्दिष्ट करने के लिए या तो StrokeType - आम तौर पर एक स्ट्रोक की चौड़ाई अगर कोई पैमाने प्रभाव में बदल देती हैं 2.0 की इस लक्ष्य को हासिल होगा -

दो आम समाधान इन फजी रूपरेखा से बचने के लिए व्यापक स्ट्रोक कि अधिक पिक्सल पूरी तरह से कवर उपयोग करने के लिए कर रहे हैं .INSIDE या StrokeType.OUTSIDE स्ट्रोक शैलियों - जो पर पूर्ण एकल पिक्सेल पंक्तियों या स्तंभों में से एक को डिफ़ॉल्ट एकल इकाई स्ट्रोक पूर्वाग्रह करेगा, आकार के सीमा के अंदर या बाहर।

और यह भी Node के दस्तावेज़ देखें:

डिवाइस पिक्सेल स्तर पर, पूर्णांक कोनों और पिक्सल और पिक्सल के केंद्रों के बीच दरारें पर मानचित्र निर्देशांक पर दिखाई देते हैं के बीच मध्य बिन्दुओं पूर्णांक पिक्सेल स्थानों।चूंकि सभी समन्वय मान फ़्लोटिंग पॉइंट नंबरों के साथ निर्दिष्ट होते हैं, तो निर्देशांक इन कोनों को सटीक रूप से इंगित कर सकते हैं (जब फ़्लोटिंग पॉइंट मानों में सटीक पूर्णांक मान होते हैं) या पिक्सेल पर किसी भी स्थान पर। उदाहरण के लिए, (0.5, 0.5) का समन्वय चरण पर ऊपरी बाएं पिक्सेल के केंद्र को इंगित करेगा। इसी प्रकार, 10 से 10 के आयाम के साथ एक आयताकार 10 वीं स्कैनलाइन पर 10 वीं पिक्सेल के निचले दाएं कोने में चरण पर ऊपरी बाएं पिक्सेल के ऊपरी बाएं कोने से फैला होगा। आयताकार के अंदर अंतिम पिक्सेल का पिक्सेल केंद्र समन्वय (9.5, 9.5) पर होगा।

तो तुम एक अजीब स्ट्रोक की चौड़ाई है जब साफ लाइनों के लिए अपने विकल्प हैं:

  1. एक StrokeType.INSIDE या StrokeType.OUTSIDE स्ट्रोक शैली का प्रयोग करें।
  2. आकार के कोऑर्डिनेट्स को पिक्सेल के 0.5 से ऑफसेट करें ताकि स्ट्रोक लाइनों के बीच की दरारों की बजाय लाइनों पर लाइन हो जाएं।
  3. स्ट्रोक चौड़ाई के रूप में बस अगले नंबर का उपयोग करें, उदा। 1 => 2, 3 => 4, आदि

क्यों setSmooth(false) काम नहीं करता है के रूप में, मैं वास्तव में नहीं पता है, मेरा अनुमान है कि एंटीलायज़िंग़ यह संदर्भित करता है एंटीलायज़िंग़ शैलियों की स्वतंत्र जब किया जाता है है स्ट्रोक पिक्सल के बीच दरारों पर केंद्रित होते हैं, लेकिन मुझे नहीं पता कि यह क्यों होगा।

+0

मैंने आपके द्वारा पेस्ट की गई सभी चीज़ों को पढ़ा है, (और अब मैं थोड़ी शर्मिंदा हूं क्योंकि बहुत कुछ गुम हो गया है लेकिन कभी भी javafoc = \ को देखना याद नहीं है, और आपके द्वारा प्रस्तावित सभी समाधानों का परीक्षण किया गया है! 1 - 1px चौड़ाई वाली रेखा में, यदि मैं अंदर सेट करता हूं, तो रेखा गायब हो जाती है! एक बाहरी के साथ, यह 2px चौड़ाई कुल लेता है। मेरी ज़रूरतों के लिए वास्तव में कार्यात्मक नहीं है .. 2 - इसका पूरा परिणाम था ... मैं थास के साथ जा रहा हूं ... 3 - यह भी काम करता है, यह वह समाधान था जो मैंने पहले पाया था, लेकिन बस संख्याओं के लिए भी काम करता है ... वैसे भी, वास्तव में आपके उत्तर के लिए धन्यवाद, यह मेरी समस्या हल हो गई है। और मुझे एक लीजन सिखाओ: पूछने से पहले, जावाडोक पढ़ें! lol ... –

+0

चिंता न करें, यह एक उचित सवाल है और व्यवहार, विशेष रूप से 'सेटसमूथ' के संबंध में, थोड़ा सूक्ष्म और विशेष रूप से सहज नहीं है। – jewelsea

+0

मैं अपनी टिप्पणी संपादित करता हूं क्योंकि मैं लाइन को तोड़ने की कोशिश करने के लिए एंटर दबाता हूं और यह केवल पहले भाग की पुष्टि करता है ... धन्यवाद! –

संबंधित मुद्दे