سؤال

تحدد مكتبة CoreGraphics من Apple وظيفتين لوصف القوس.

  • يضيف CGPathAddArc قوسًا يعتمد على نقطة مركزية ونصف قطر وزوج من الزوايا.
  • يضيف CGPathAddArcToPoint قوسًا يعتمد على نصف القطر وزوج من خطوط المماس.

التفاصيل موضحة في مرجع CGPath API.لماذا وظيفتين؟راحة بسيطة؟هل أحدهما أكثر كفاءة من الآخر؟هل يتم تعريف أحدهما من حيث الآخر؟

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

المحلول

يمنحك الأول جزءًا من الدائرة (في الحقيقة، تقريبًا لواحد)، بينما يكشف الأخير حقيقة أنك تقوم بإنشاء مسار بيزييه.اعتمادًا على ما ترسمه بالفعل، قد يكون أحدهما أكثر ملاءمة.يمكنك حقًا اعتبار كل منهما ملائمًا لـ CGPathAddCurveToPoint.

نصائح أخرى

CGContextAddArc يفعل هذا:

addArc

حيث الخط الأحمر هو ما سيتم رسمه، sA هو startAngle, ، eA هو endAngle, ، ص هو 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) وسوف تتوقف عند نهاية الدائرة.

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