आप कर सकते हैं मौजूदा पथ को तेज करने और पथपाकर एक पथ बनाएं, लेकिन इसके लिए यदि आप CGPathRef के बजाय
NSBezierPath का उपयोग करना आवश्यक है।
CGMutablePathRef path0 = CGPathCreateMutable ( ); CGAffineTransform transform = CGAffineTransformMakeTranslation (20, 20); // प्रारंभिक स्थिति {20, 20} CGGlyph ग्लिफ़ है; के लिए (n = 0; n & lt; len; n ++) {glyph = [font glyphWithName: [strfororbizier substringWithRange: एनएसएमकेरेंज (एन, 1)]]; CGPathRef glyphPath = CTFontCreatePathForGlyph ((__ पुल CTFontRef) फ़ॉन्ट, ग्लिफ़, नल); CGPathAddPath (पथ 0, & amp; रूपांतरण, ग्लाइफपाथ); CGPathRelease (glyphPath); // रूपांतरण CGSize अग्रिम में ग्लिफ़ अग्रिम संलग्न; CTFontGetAdvancesForGlyphs ((__ ब्रिज CTFontRef) फ़ॉन्ट, kCTFontDefaultOrientation, & amp; Glyph, & amp; अग्रिम, 1); Transform.tx + = advance.width; परिवर्तन। टी + = अग्रिम। हाइट; } CGFloat पैटर्न 2 [4]; pattern2 [0] = 5 * ग; pattern2 [1] = 2 * ग; pattern2 [2] = 2 * ग; pattern2 [3] = 2 * ग; CGPathRef पथ 1 = CGPathCreateCopyByDashingPath (path0, NULL, 0, pattern2, 4); CGPathRef पथ 2 = CGPathCreateCopyByStrokingPath (पथ 1, NULL, c, kCGLineCapbutt, kCGLineJoinMiter, CGFLOAT_MAX); CGContextRef संदर्भ = [NSGraphicsContacts वर्तमानContext] .graphicsPort; CGContextAddPath (संदर्भ, पथ 2); CGContextDrawPath (संदर्भ, केसीजीपैथफिल); CGPathRelease (path0); CGPathRelease (path1); CGPathRelease (Path2);
CGPathRef से सहज नहीं हैं, तो आप एक
NSBezierPath बना सकते हैं और उसे एक
CGPathRef ऐप्पल दस्तावेज़ीकरण में वर्णित विधि का उपयोग करना (रिवर्स भी संभव है)।
Comments
Post a Comment