2008-09-16 10 views
12

ऐप्पल की कोरग्राफिक्स लाइब्रेरी एक चाप का वर्णन करने के लिए दो कार्यों को परिभाषित करती है।CGPathAddArc बनाम CGPathAddArcToPoint

  • CGPathAddArc केंद्र बिंदु, त्रिज्या और कोणों की जोड़ी के आधार पर एक चाप जोड़ता है।
  • CGPathAddArcToPoint त्रिज्या और टेंगेंट लाइनों की एक जोड़ी के आधार पर एक चाप जोड़ता है।

विवरण the CGPath API reference में समझाया गया है। दो कार्य क्यों? सरल सुविधा? क्या दूसरे की तुलना में एक और अधिक कुशल है? क्या किसी दूसरे के संदर्भ में परिभाषित किया गया है?

उत्तर

8

पूर्व आपको एक सर्कल का एक हिस्सा (वास्तव में, एक का अनुमान) प्राप्त करता है, जबकि उत्तरार्द्ध इस तथ्य को उजागर करता है कि आप बेज़ीर पथ बना रहे हैं। जो वास्तव में आप चित्रित कर रहे हैं उसके आधार पर, एक या दूसरा अधिक सुविधाजनक हो सकता है। आप वास्तव में CGPathAddCurveToPoint के लिए दोनों सुविधाओं पर विचार कर सकते हैं।

+0

क्या आपको यह इंगित करना है कि CGPathAddArcToPoint एक वक्र खींच सकता है जो परिपत्र नहीं है? मैंने सोचा कि सभी arcs एक सर्कल के भाग हैं। – benzado

+0

एक सर्कल को बेजियर वक्र द्वारा बिल्कुल वर्णित नहीं किया जा सकता है। –

63

CGContextAddArc करता है:

addArc

जहां लाल रेखा क्या तैयार हो जाएगा, एसए startAngle है, ईए endAngle है, r radius है, और x और y x और y हैं। यदि आपके पास पिछली बात है तो फ़ंक्शन इस बिंदु से चाप की शुरुआत तक लाइन करेगा (जब तक कि आप सावधान न हों कि यह रेखा चाप के समान दिशा में नहीं जायेगी)।

इस तरह

CGContextAddArcToPoint काम करता है:

addArc

कहाँ P1 पथ, x1, x2, y1, y2 मैच कार्यों x1, x2, y1, y2 और आर के मौजूदा बिंदु है radius है । चाप वर्तमान बिंदु और (x1, y1) के बीच की रेखा के समान दिशा में शुरू होगा और (x1, y1) और (x2, y2) के बीच की दिशा में समाप्त होगा। यह (x2, y2) पर नहीं होगा यह सर्कल के अंत में रुक जाएगा।

+0

बढ़िया! मुझे यकीन है कि ये केवल दो नहीं हैं। मैं अन्य एपीआई के लिए आरेख कहां पा सकता हूं? – CopperCash

+3

@CopperCash आपको निराश करने के लिए खेद है, लेकिन ये केवल दो ही हैं जिन्हें मैं जानता हूं, और मैंने उन्हें कोड में खींचा (ज्यादातर, लेबल और अंक छवि संपादक के साथ जोड़े गए थे)। –

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