HTMLHTML Graphicsالموسوعة

47 – رسومات HTML SVG

تعرف SVG على رسومات المتجهات القابلة للتكبير باستخدام تنسيق XML.

  • SVG: اختصار لعبارة “Scalable Vector Graphics” وتعني رسومات المتجهات القابلة للتكبير.
  • رسومات المتجهات: هي نوع من الرسومات تتكون من مسارات ونقاط محددة إحداثياتها بدقة، على عكس الرسومات النقطية (raster graphics) التي تعتمد على بيكسلات ثابتة، مما يمنح رسومات المتجهات ميزة تكبيرها دون فقدان الجودة.
  • استخدامات SVG: تستخدم SVG بشكل رئيسي لتعريف الرسومات التفاعلية والمتحركة على صفحات الويب. ويمكن أيضًا استخدامها لإنشاء صور ثابتة عالية الدقة.

عنصر <svg> في HTML

عنصر <svg> في HTML هو حاوية لرسومات SVG. يوفر SVG عدة طرق لرسم المسارات والمستطيلات والدوائر والنصوص والصور الرسومية.


دعم المتصفح لـ SVG

يوضح الجدول أدناه إصدارات المتصفحات التي تدعم عنصر <svg> بشكل كامل:

المتصفحالإصدار
Internet Explorer9.0
Chrome4.0
Firefox3.0
Safari3.2
Opera10.1

دائرة SVG

<!DOCTYPE html>
<html>
<body>

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

</body>
</html>

مستطيل SVG

<svg width="400" height="100">
  <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg>

SVG مستطيل مدور الزوايا

<svg width="400" height="180">
  <rect x="50" y="20" rx="20" ry="20" width="150" height="150"
  style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
</svg>

نجمه SVG

<svg width="300" height="200">
  <polygon points="100,10 40,198 190,78 10,78 160,198"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>

لوجو SVG

<svg height="130" width="500">
  <defs>
    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
      <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
    </linearGradient>
  </defs>
  <ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
  <text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>
  Sorry, your browser does not support inline SVG.
</svg>

الاختلافات بين SVG و Canvas

SVG:

  • لغة لوصف رسومات ثنائية الأبعاد باستخدام XML.
  • تعتمد على XML، مما يعني أن كل عنصر رسومي متاح ضمن نموذج كائن المستند (DOM) لـ SVG.
  • يمكن ربط معالجات أحداث JavaScript بالعناصر الرسومية.
  • يتذكر المتصفح كل شكل مرسوم ككائن مستقل.
  • إذا تم تغيير سمات كائن SVG، يقوم المتصفح بإعادة رسم الشكل تلقائيًا.

Canvas:

  • ترسم رسومات ثنائية الأبعاد بشكل حيوي باستخدام JavaScript.
  • يتم عرض الرسومات بكسل بكسل.
  • بعد رسم الشكل، لا يتذكره المتصفح.
  • إذا لزم تغيير موضع الشكل، يتم إعادة رسم المشهد بأكمله، بما في ذلك أي كائنات مغطاة بالرسم.

متى تستخدم SVG أو Canvas:

تُفضل SVG عندما:

  • تحتاج إلى رسومات قابلة للتكبير دون فقدان الجودة.
  • ترغب في التفاعل مع العناصر الرسومية بشكل فردي.
  • تتطلب الرسومات أن تكون قابلة للبحث والفهرسة بواسطة محركات البحث.

تُفضل Canvas عندما:

  • تتطلب الرسومات أداءً عاليًا وتحديثات سريعة.
  • تحتاج إلى معالجة الرسومات على مستوى البكسل.
  • تتعامل مع رسومات معقدة للغاية أو رسوم متحركة كثيفة.

بشكل عام، يعد كل من SVG و Canvas أدوات قوية لإنشاء رسومات تفاعلية على الويب. يعتمد اختيار الأداة المناسبة على احتياجات المشروع ومتطلباته.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شاهد أيضاً
إغلاق
زر الذهاب إلى الأعلى