عنصرHTML <canvas> براي كشيدن گرافيك برروي صفحات وب استفاده ميشود. نمونه اي ازاشكال گرافيكي در زير نشان داده شده است.
اشكال گرافيكي بالا با<canvas> ايجاد شده است .در بالا چهاز عنصر وجود دارد. مستطيل قرمز، مستطيل گراديان، مستطيل چندرنك و متن گرافيكي رنگي.
عنصرHTML <canvas> وجاوااسكريپت براي كشيدن گرافيگ براي لحظه استفاده ميشود.
عنصر<canvas> فضائي براي گرافيك ميباشد .براي گرافيك واقعي در آن فضا بايداز جاوااسكريپت استفاده نمود.
در جدول زير اولين نسخه مرورگرها كه كاملا از عنصرفوق پشتيباني مي نمايند، نشان داده شده است.
مرورگر | Chrome | Internet EXplorer | Firefox | Safari | Opera |
---|---|---|---|---|---|
نسخه | 4.0 | 9.0 | 2.0 | 3.1 | 9.0 |
يك بوم يك فضاي مستطيلي در صفحه وب است .پيش فرض آن بدون خط و بدون محتوي است .نمونه اسكريپت مطابق زير است.
<canvas id="myCanvas" width="200" height="100"></canvas>
توجه ـ هميشه براي عنصر فوق ويژگيid را معرفي نمائيد .در جاوااسكريپت از اين ويژگي براي كار گرافيكي استفاده ميشود.
همچنين براي ابعاد بوم از ويژگي هايheight , width استفاده نمائيد .با استفاده styleحاشيه آنرا تنظيم نمائيد .
در زير يك نمونه پايه وبدون محتوي ملاحظه فرمائيد.
مثال ـ نمونه بوم بدون محتوي
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas>
بعداز اينكه يك بوم مستطيلي ايجاد شد، براي كار طراحي در آن بايد از دستورات جاوااسكريپت استفاده نمائيم .بدنبال نمونه هائي آمده كه مشاهده فرمائيد.
مثال ـ كشيدن خط در بوم
<script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.moveTo(0, 0); ctx.lineTo(200, 100); ctx.stroke(); </script >
نكته ـ در اين مثال دو تابعmoveto(0,0) وlineto(200,100) در بوم مسير را تعريف ميكنندوسپس تابعstroke() آنرا با مشخصاتش ترسيم ميكند . مسير در بوم خطي است از نقطه(0,0) به نقطه(200,100)
مثال ـ كشيدن دايره در بوم
<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 >
در مثال بالا دستور زير را قبل ازتابعstroke() اضافه نمائيد ونتيجه اجرا را به بينيد .شايد انتظار اين باشد كه دو دايره فقط متداخل مشاهده كنيد .اما نيتجه براساس پيوستگي مسير بشكل متفاوتي ميباشد.
مثال ـ كشيدن متن در بوم
<script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.font = "30px Arial"; ctx.fillText("Hello World", 10, 50); </script >
مثال ـ كشيدن متن خال خالي
<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 >