Sobes.tech
Middle

Фарқи байни Canvas ва SVG чист?

sobes.tech AI

Ҷавоб аз AI

Canvas — ин як API raster барои расмкашӣ дар вақти воқеӣ бо ёрии JavaScript мебошад. Он пикселҳоро дар рӯйхат мекашад.

SVG (Графикаи вектории scalable) — формат XML барои тавсифи графикаи дуҳуҷраӣ мебошад. Он шаклҳо, хатҳо, матн ва ғайраро тавсиф мекунад.

Тафовутҳои асосӣ:

  • Асос: Canvas — пикселҳо, SVG — векторҳо (тавсифҳои математикӣ).
  • Равиши расмкашӣ: Canvas — императивӣ (командҳои расмкашӣ), SVG — декларативӣ (тавсифи унсурҳо).
  • Масштаб: Canvas бо талафоти сифат (rastr) масштаб мешавад, SVG — бе талафоти сифат (вектор).
  • Иҷро: Canvas барои графикаи динамикӣ, анимацияҳо, бозӣ беҳтар аст. SVG барои графикаи статикӣ, мураккаб, диаграммаҳо беҳтар аст.
  • Дастрасӣ: унсурҳои SVG тавассути DOM дастрасанд, метавонанд бо CSS ва JavaScript тағир дода шаванд. Canvas дар сатҳи пиксел мекашад, унсурҳои алоҳида дастрас нестанд.
  • Интерактивӣ: Интерактивӣ дар SVG дар сатҳи унсурҳо дарунсохт аст. Дар Canvas, бояд рӯйдодҳои муш ва тамосро пайгирӣ кард ва муайян кард, ки ба кадом пикселҳо дахл дорад.
  • Формат: Canvas — ин унсури <canvas> ва API JavaScript мебошад. SVG — формат XML мустақил, ки метавонад мустақиман ба HTML ворид шавад ё ҳамчун файл (.svg) истифода шавад.

Масалан, сохтани як давра:

// Canvas
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fillStyle = 'red';
ctx.fill();
<!-- SVG -->
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <circle cx="100" cy="100" r="50" fill="red" />
</svg>