أقواس SVG: كيفية رسم الدوائر والأشكال الناقصة
نشرت: 2023-02-15إذا كنت تريد رسم جزء من قوس باستخدام svg ، فأنت بحاجة إلى استخدام العنصر. يتم استخدام العنصر لإنشاء أشكال عشوائية تتكون من خطوط مستقيمة أو منحنيات بيزير أو أقواس بيضاوية. يمكنك إنشاء أقواس من الدوائر والأشكال البيضاوية. لإنشاء قوس لدائرة ، استخدم العنصر واضبط سمات cx و cy على إحداثيات مركز الدائرة ، والسمة r لنصف قطر الدائرة. ثم استخدم العنصر لإنشاء القوس. تحدد قيمة علم المسح ما إذا كان سيتم رسم القوس في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة. تحدد سمات زاوية البداية وزاوية النهاية الزوايا التي يبدأ عندها القوس وينتهي. المحور x لعنصر svg أفقي ، والمحور y عمودي ، لذلك يتم قياس زاوية البداية وزاوية النهاية في اتجاه عقارب الساعة من المحور y. كلما كانت الزاوية أكبر ، كلما كان القوس أكبر. إذا كنت تريد إنشاء قوس بيضاوي ، فأنت بحاجة إلى تعيين سمات rx و ry على نصف قطر القطع الناقص x و y ، وسمات cx و cy على إحداثيات مركز القطع الناقص. تحدد قيمة علم المسح مرة أخرى ما إذا كان سيتم رسم القوس في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة. تعمل سمات زاوية البداية وزاوية النهاية بنفس طريقة عمل القوس الدائري ، لكن المحور السيني والمحور الصادي للقطع الناقص ليسا أفقيين وعموديين بالضرورة. تحدد سمات المحور الرئيسي والمحور الثانوي المحور السيني والمحور الصادي للقطع الناقص.
في CodePen ، يحتوي قالب HTML5 القياسي على ما يتم عرضه في النص والعلامات. هذا هو أفضل مكان تذهب إليه إذا كنت تريد عرض عناصر أكبر من الحياة مثل علامة "html". يمكن تطبيق CSS في أي ورقة أنماط على قلمك بأي طريقة. يمكن برمجة قلمك باستخدام برنامج نصي متاح على الإنترنت. سنضيفه إلى JavaScript في القلم بالترتيب الذي تحدده ، بدءًا من عنوان URL. سنحاول معالجة البرنامج النصي الذي قمت بربطه لمعرفة ما إذا كان يحتوي على امتداد ملف يتوافق مع نوع البرنامج النصي الذي ترتبط به.
كيف ترسم نصف دائرة في Svg؟
لرسم نصف دائرة بتنسيق svg ، تحتاج أولاً إلى إنشاء دائرة. بعد ذلك ، تحتاج إلى استخدام خاصية stroke-dasharray لإنشاء شرطات بنفس طول محيط الدائرة. أخيرًا ، تحتاج إلى استخدام خاصية Stroke-dashoffset لتعويض الشرطات بحيث يكون نصف الدائرة فقط مرئيًا.
في CodePen ، يتيح محرر HTML كتابة كل ما هو موجود في علامات رأس وجسم قالب HTML5 الأساسي. يمكن تطبيق CSS على قلمك من أي مكان على الإنترنت. تُستخدم بادئات البائع بشكل شائع للإشارة إلى الخصائص والقيم لضمان أفضل دعم عبر المستعرضات. من السهل تطبيق برنامج نصي على قلمك من أي مكان على الويب. ما عليك سوى وضع عنوان URL هنا ، متبوعًا بـ JavaScript للقلم ، للحصول على JavaScript الخاص بك. إذا كان امتداد ملف البرنامج النصي الذي قمت بربطه هو معالج مسبق ، فسنحاول معالجته قبل التقديم.
كيف تجد مسار Svg لقوس دائرة؟
هناك عدة طرق مختلفة للعثور على مسار svg لقوس دائرة. إحدى الطرق هي استخدام منشئ مسار svg عبر الإنترنت ، مثل http://www.w3schools.com/svg/svg_arcs.asp. هناك طريقة أخرى وهي استخدام برنامج تحرير متجه ، مثل Adobe Illustrator ، لإنشاء القوس.
إنشاء أقواس في Svg
قبل أن تتمكن من إنشاء الأقواس الخاصة بك ، يجب عليك أولاً تحديد نقطة البداية الخاصة بك. نتيجة لذلك ، يجب تعيين قيم CX و CY على N و M على التوالي. اضبط قيمة R على نصف القطر الذي تريده بعد إنشاء الدائرة. اضبط قيمة X على M (R * CX) وقيمة Y على N (R * CY).
هل من الممكن رسم أي مسار في Svg؟
لا يمكن رسم أي مسار في svg. لا يوجد سوى مجموعة محدودة من أوامر المسار التي يمكن استخدامها لإنشاء مسار.
المسار هو مصطلح هندسي لمخطط كائن ما ، والذي يمكن تمثيله بالحركات إلى ، والخطوط إلى ، والمنحنيات إلى (الأشكال التكعيبية والتربيعية) ، والأقواس إلى ، والمسارات القريبة. يمكن استخدام المسارات المركبة لتوفير تأثيرات مثل الثقوب الدائرية المجوفة في الكائنات عن طريق إنشاء مسارات فرعية متعددة للمسار (على سبيل المثال ، مسار به مسارات فرعية متعددة). يحدد الفصل 1 بناء الجملة ، والسلوك ، وواجهات DOM لمسارات SVG . تتكون بيانات المسار من سلسلة من الأوامر متبوعة بحرف واحد. تعد بنية بيانات المسار قصيرة وموجزة لتسهيل تنزيل الملفات والحفاظ عليها صغيرة. نظرًا لأن بيانات المسار تحتوي على أحرف سطر جديد ، يمكن تقسيم مجموعة متنوعة من الأسطر إلى أقسام مختلفة لتسهيل قراءتها. في حالة أحرف المسافات ، سيتم تسوية الأسطر الجديدة في الترميز كجزء من العملية.
يجب تعيين سلسلة بيانات المسار لتحديد الشكل. تصف الخطوات أدناه كيفية معالجة الأخطاء داخل سلسلة وفقًا لقسم معالجة أخطاء بيانات المسار. يجب نقل مقطع بيانات المسار بمجرد تحديده (إذا كان موجودًا). من الممكن رسم خط مستقيم آلي من النقطة الحالية إلى النقطة الأولية للمسار الفرعي الحالي. قد يوجد مقطع مسار يبلغ طوله بضع بوصات فقط. يتم ربط نهاية مقطع المسار المغلق ببداية المقطع الأول باستخدام القيمة الحالية لـ "ربط خط السكتة الدماغية". يختلف سلوك المسار الفرعي المغلق عن سلوك المسار الفرعي المفتوح لأن كلا المقطعين غير مرتبطين في نفس الوقت.
عمليات المسار القريب غير مدعومة حاليًا في Python ، ولا عمليات إكمال المقطع. على سبيل المثال ، باستخدام أوامر الخط المختلفة ، يمكنك نقل خطوط مستقيمة من نقطة حالية إلى نقطة جديدة. عند استخدام أمر l نسبي ، تكون نقطة النهاية (cpy x ، cpy y). يتم رسمه في اتجاه المحور x الموجب عندما يتم رسم الأمر النسبي h بقيمة x موجبة. تُظهر الأمثلة الخمسة الأولى مقطع مسار Bezier واحدًا مكعبًا . يتم استخدام الأوامر التالية للأقواس البيضاوية. عند استخدام أمر نسبي لتمثيل القوس ، تكون نقطة نهاية القوس (cpx x ، cpy x).
يشير علم القوس الكبير وعلم المسح إلى الأقواس الأربعة التي تم رسمها. يجب معالجة EBNF قدر الإمكان لإزالة أكبر عدد ممكن من الأحرف من الصورة في وقت النضوب. عندما تكون قيمة الخاصية d تساوي صفرًا ، يتم تعطيل التقديم. عند حساب الأشكال والعلامات عند حدود المقطع ، يتم تجاهل الاتجاه الافتراضي عند حدود المقطع. إذا كانت قيمة RY أو rx تساوي صفرًا ، فسيتم التعامل مع هذا القوس على أنه جزء من خط مستقيم (خط يتبعه). يمكن العثور على عملية القياس هذه في قسم الملحق في صيغة الرياضيات. مقاطع المسار التي لا تحتوي على أطوال غير صالحة ، وستؤثر على العرض في السيناريوهات التالية.
يمكن للمؤلف حساب الطول الإجمالي للمسار باستخدام السمة "pathLength" ، والتي تسمح لوكيل المستخدم بقياس حسابات المسافة على طول المسار. بمعنى آخر ، يجب أن يكون طول عملية الانتقال إلى عنصر المسار صفرًا. يتم حساب طول المسار باستخدام ثلاثة أوامر فقط: lineto و curveto و arcto.
ثلاثة أنواع من المسارات
النقطة الأولى التي يجب توضيحها هي أن المسار يبدأ دائمًا وينتهي من حيث نقطتي البداية والنهاية. بداية ونهاية المسار هما نفس الشيء ، وكلاهما يعملان كنقطتي البداية والنهاية.
من المهم ملاحظة أنه يمكن إغلاق المسار أو فتحه في أي وقت. يحدث التنبيه إلى المسار المغلق عندما تكون نقطة النهاية أعلى نقطة البداية تمامًا. يُشار إلى المسار الذي لا ينتهي عند نقطة البداية على أنه مسار مفتوح.
أخيرًا ، يمكن العثور على المنحنيات في أي مسار. المنحنى هو ببساطة مسار يبدو دائريًا أو غير خطي بطبيعته.
Svg ارسم قوسًا بين نقطتين
SVG لديه القدرة على رسم خطوط مستقيمة ومنحنية. لإنشاء خط منحني ، تحتاج أولاً إلى نقطتين. النقطة الأولى هي حيث يبدأ الخط والنقطة الثانية حيث ينتهي الخط. بعد ذلك ، تحتاج إلى تحديد مقدار الانحناء بين النقطتين. يتم ذلك عن طريق تحديد قيمة لسمات cx و cy. تحدد السمة cx الإحداثي x لمركز القوس وتحدد السمة cy إحداثي y لمركز القوس.
في هذه المقالة ، سأوضح لك كيفية استخدام تنسيق صورة مضلع لرسم قوس أو قسم من محيط دائرة. بعد ذلك ، سأرسم شريحة دائرية أو قطاع دائري لإعطائها اسمها الصحيح. لإنشاء مخطط دائري ، سأرسم سلسلة من القطاعات الدائرية. تشير وظيفة إعدادات var إلى ما إذا كان يجب ضبط الإعدادات أم لا. var dElement = document.getNSElement (': //www.w3.org/2000/svg'، "path،" path)، var dElement = document.getNSElement (': //www.w3.org/2000/ svg '،' path، 'أول أمر في العمل هو تقديم الاعتبار الأول. المحيط X يساوي محيط X. Math.sin (settings.startAngleradians) * CentreX * Settings.radius. الآن بعد أن أصبح لدينا بعض الأشياء للعب بها ، فلنبدأ العمل.
عند فتح نافذة app.js ، توجد قيود صارمة. يمكن اعتبار الألوان بمثابة ألوان ثابتة. * الأحمر والأخضر والأزرق والأصفر والبرتقالي والأرجواني: لا توجد بيانات ثابتة ؛ القيمة معطاة باللون الأحمر والأخضر والأزرق والأصفر والبرتقالي والأرجواني. قيمة radiansPerUnit هي [26، 16، 36، 10، 20، 29]؛ يتم حسابه باستخدام [2 * رياضيات. لنبدأ بالمجموع. راديان هي 0 درجة مئوية ويتم التعبير عنها كـ (Let). طول Data.length يساوي 0 ، و data.length يساوي l ، و data.length يساوي i. تم إنشاء صفيفين ، أحدهما للألوان والآخر للبيانات ، وقد حسبت راديان كل وحدة كدالة للصفيف. تقوم الحلقة بحساب زاوية المسح لعنصر البيانات الحالي عن طريق استدعاء drawPieSlice وإضافة sweepAngleRadians ، بحيث تبدأ شريحة الفطيرة التالية من حيث انتهت السابقة.
يتم تحديد المسارات بالنقاط
يجب تحديد المسارات بسلسلة من العقد أو النقاط. تحدد كل عقدة نقطة على المسار ، ويتم رسم المسار من العقدة الأولى إلى العقدة الأخيرة بهذا الترتيب.
كما ترى في الصورة أعلاه ، تكون العقدة الأولى في الزاوية العلوية اليسرى ، والعقدة الأخيرة في الزاوية اليمنى السفلية. يتم رسم المسار من العقدة الأولى إلى الأخيرة ، ويتم رسم الدائرة كنتيجة لذلك.