کدلپر - مرجع جامع آموزش برنامه‌نویسی

All Right Reserved © 2025 Codoloper

background codoloper

گرافیک با Canvas در HTML

خانه

گرافیک با Canvas در HTML

عنصر <canvas> در HTML برای ترسیم گرافیک روی یک صفحه وب استفاده می‌شود. گرافیک سمت چپ با <canvas> ایجاد شده است. این گرافیک چهار عنصر را نشان می‌دهد: یک مستطیل قرمز، یک مستطیل گرادیان (طیف رنگ)، یک مستطیل چندرنگ و یک متن چندرنگ.


HTML Canvas چیست؟

عنصر <canvas> در HTML برای ترسیم گرافیک، به صورت پویا (on the fly)، از طریق جاوااسکریپت استفاده می‌شود. عنصر <canvas> فقط یک محفظه (container) برای گرافیک است. شما باید از جاوااسکریپت برای ترسیم واقعی گرافیک استفاده کنید.

Canvas متدهای مختلفی برای ترسیم مسیرها، جعبه‌ها، دایره‌ها، متن و افزودن تصاویر دارد. 

Canvas توسط تمام مرورگرهای اصلی پشتیبانی می‌شود


 

مثال‌های Canvas

یک canvas یک ناحیه مستطیلی در یک صفحه HTML است. به طور پیش‌فرض، canvas هیچ حاشیه و محتوایی ندارد. کد آن به این شکل است:

<canvas id="myCanvas" width="200" height="100"></canvas>

 

نکته: همیشه یک ویژگی id (تا در اسکریپت به آن ارجاع شود)، و ویژگی‌های width و height را برای تعریف اندازه canvas مشخص کنید. برای افزودن حاشیه، از ویژگی style استفاده کنید. در اینجا یک مثال از یک canvas ساده و خالی آمده است:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
</canvas>

اضافه کردن یک جاوااسکریپت

پس از ایجاد ناحیه مستطیلی canvas، باید یک جاوااسکریپت برای انجام ترسیم اضافه کنید. در اینجا چند مثال آورده شده است:

ترسیم یک خط

مثال

<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  ctx.moveTo(0, 0);
  ctx.lineTo(200, 100);
  ctx.stroke();
</script>


ترسیم یک دایره

مثال

<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  ctx.beginPath();
  ctx.arc(95, 50, 40, 0, 2 * Math.PI);
  ctx.stroke();
</script>


ترسیم یک متن

مثال

<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  ctx.font = "30px Arial";
  ctx.fillText("Hello World", 10, 50);
</script>


ترسیم متن توخالی (Stroke Text)

مثال

<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  ctx.font = "30px Arial";
  ctx.strokeText("Hello World", 10, 50);
</script>


ترسیم گرادیان خطی

مثال
<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");

  // Create gradient
  var grd = ctx.createLinearGradient(0, 0, 200, 0);
  grd.addColorStop(0, "red");
  grd.addColorStop(1, "white");

  // Fill with gradient
  ctx.fillStyle = grd;
  ctx.fillRect(10, 10, 150, 80);
</script>


ترسیم گرادیان دایره‌ای

مثال

<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");

  // Create gradient
  var grd = ctx.createRadialGradient(75, 50, 5, 90, 60, 100);
  grd.addColorStop(0, "red");
  grd.addColorStop(1, "white");

  // Fill with gradient
  ctx.fillStyle = grd;
  ctx.fillRect(10, 10, 150, 80);
</script>


ترسیم تصویر

مثال
<script>
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  var img = document.getElementById("scream");
  ctx.drawImage(img, 10, 10);
</script>