यह विषय एक या दो बार खरोंच कर दिया गया है, लेकिन मैं अभी भी परेशान हूं। और Google या तो दोस्ताना नहीं था।एक उपयोगकर्ता को क्वार्ट्ज 2 डी समन्वय प्रणाली कैसे सेट करें जो स्कैलिंग के साथ अस्पष्ट ड्राइंग से बचाती है?
चूंकि क्वार्ट्ज एफ़िन ट्रांसफॉर्म का उपयोग करके मनमाने ढंग से समन्वय प्रणाली की अनुमति देता है, इसलिए मैं वास्तविक जीवन समन्वय का उपयोग करके फर्शप्लान जैसी चीजों को आकर्षित करने में सक्षम होना चाहता हूं, उदाहरण के लिए पैर का पंजा।
तो मूल रूप से, उदाहरण के लिए, मैं दृश्य को स्केल करना चाहता हूं ताकि जब मैं 10x10 आयत खींचूं (उदाहरण के लिए 10-इंच बॉक्स सोचें), तो मुझे 60x60 पिक्सेल आयत मिलता है।
यह काम करता है, आयत को छोड़कर मुझे काफी अस्पष्ट लगता है। यहां एक और सवाल का जवाब मिला जो बताता है कि क्यों। हालांकि, मुझे यकीन नहीं है कि मैं उस कारण को समझ गया क्यों, और इसके अलावा, मुझे नहीं पता कि इसे कैसे ठीक किया जाए।
मैं अपने awakeFromNib
कस्टम दृश्य विधि में मेरी समन्वय प्रणाली सेट:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect r = CGRectMake(10., 10., 10., 10.);
CGFloat lineWidth = 1.0;
CGContextStrokeRectWithWidth(context, r, lineWidth);
}
वर्ग मैं ठीक माप लिया जाता है:
- (void) awakeFromNib {
CGAffineTransform scale = CGAffineTransformMakeScale(6.0, 6.0);
self.transform = scale;
}
और यहाँ मेरी ड्रा दिनचर्या है यहाँ मेरी कोड है , लेकिन पूरी तरह से अस्पष्ट। lineWidth
के साथ खेलना मदद नहीं करता है: जब lineWidth
छोटा सेट होता है, तो यह हल्का हो जाता है, लेकिन कुरकुरा नहीं होता है।
तो क्या स्केल किए गए समन्वय प्रणाली के लिए एक दृश्य स्थापित करने का कोई तरीका है, ताकि मैं अपने डोमेन निर्देशांक का उपयोग कर सकूं? या क्या मुझे वापस जाना चाहिए और मेरे ड्राइंग दिनचर्या में स्केलिंग लागू करना चाहिए?
ध्यान दें कि यह समस्या अनुवाद या रोटेशन के लिए नहीं होती है।
धन्यवाद
यदि आप स्केल फैक्टर के बावजूद बिंदुओं में रेखा चौड़ाई सेट करना चाहते हैं, तो इसे 'अंक/स्केल फैक्टर की वांछित संख्या' पर सेट करें। उदाहरण: डिफ़ॉल्ट 1 pt/1 × = 1 है; आपके 6 × कारक पर 1-पीटी लाइन '1.0/6.0' है; एक 2-पीटी लाइन '2.0/6.0' होगी। –