Uncategorized

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 أدوات قوية لإنشاء رسومات تفاعلية على الويب. يعتمد اختيار الأداة المناسبة على احتياجات المشروع ومتطلباته.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button