عنصر<canvas> يك ناحيه بيت مپي در يك صفحه HTML تعريف مينمايد .
Canvas APIبه جاوا اسكريپت اجازه ميدهد كه روي بوم با آن گرافيك ترسيم نمود . اينAPI داراي امكانات رسم اشكال، خطوط ، منحني ها، باكس ها،متن و تصاوير با امكانات رنگ ، عمليات چرخشي، شفافيت و ساير دستكاري هاي پيكسلي را دارد.
ميتوان با تگ<canvas> هرجائي ازصفحه عنصر بوم رااضافه كرد .
مثال ـ ايجاد بوم درصفه
<canvas id="myCanvas" width="300" height="150"></canvas>
با متدHTML DOMgetElementById() ميتوان ارطريق id عنصر <canvas> به آن دسترسي پيدا كرد .نمونه زير:
const myCanvas = document.getElementById("myCanvas");
براي ترسيم روي بوم نيازمند ايجاد شئ زمينه دوبعدي است
const ctx = myCanvas.getContext("2d");
توجه ـ خود عنصرHTML 7ltcanvas> داراي هيچ قابليت ترسمي نمي باشد . بايد ازامكانات جاوااسگريپت براي ترسيم روي آن استفاده كرد.
متدgetContext() شئي را با امكانات ابزار ترسيمي روي آن برگشت ميدهد .
پس از ايجاد يك زمينه دوبعدي روي بوم ، ميتوان روي آن نقاشي كشيد.
مثال ـ متدfillRect() مستطيلي سياه رنگ كه راس بالاي چپ آن در نقطه (20,20)وعرض150 پيكسل وارتفاع آن100 پيكسل است، را ترسيم ميكند.
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillRect(20, 20, 150, 100);
ويژگيfillStyle رنگ شئ ترسيمي را مشخص ميكند .
مثال ـ ترسيم مستطيل قرمز .پيش فرض رنگ سياه است
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
ميتوان با متدdocument.createElement() عنصر <canvas> را ايجاد وبه صفحه موجود اضافه نمود.
مثال ـ ايجاد عنصر بوم با متدdocument.CreateElement()
const myCanvas = document.createElement("canvas"); document.body.appendChild(myCanvas); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
روش متداول ترسيم روي بوم اين است كه:
مثال ـ
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(20, 100); ctx.lineTo(70, 100); ctx.stroke();
اين مرجع تمام ويژگي ها وروش هاي شئgetContext("2d") را كه براي ترسيم متن، خطوط ، كادرها ، دايره ها، تصاوير وموارد ديگر كه روي بوم استفاده ميشود، پوشش ميدهد.
سه متد ترسيمي مستقيم در رويCanvas وجود دارد .
متد | شرح |
---|---|
fillRect() | يك مستطيل توپر رسم ميكند. |
strokeRect() | مستطيل توخالي ترسيم ميكند. |
clearRect() | پيكسل هاي مشخص شده دريك مستطيل را پاك ميكند. |
متدهاي مسير درجدول زير همراه با لينك تشريح آنها.
متد مسير | شرح |
---|---|
beginPath() | شروع مسير جديد يا بازيابي مسيرجاري |
closePath() | يك خط بمسير از نقطه فعلي تاشروع اضافه ميكند. |
isPointInPath() | درصورت نقطه مشخص شده درمسيرباشد،مقدارtrue رگشت ميشود . |
moveTo() | مسير را به نقطه اي دربوم بدون ترسيم انتقال ميدهد. |
lineTo() | يك خط به مسير اضافه ميكند. |
fill() | مسير فعلي را پرميكند. |
rect() | مستطيلي به مسير اضافه ميكند. |
stroke() | مسير جاري راترسيم ميكند. |
bezierCurveTo() | يك منحني بزيه درچه سه به مسير اصافه ميكند. |
arc() | يك قوس يامنحني) دايره وياقسمتي از دايرهرابه مسيراصافه ميكند |
arcTo() | يك قوس يامنحني بين دومماس، به مسير اضافه ميكند. |
quadraticCurvTo() | يك منحني درجه دوم بزيه به مسير اضافه ميكند. |
متد يا ويژگي | شرح |
---|---|
direction | مقدار ويژگيdirection راتنظيم ويابرگشت ميدهد . |
fillText() | متن را روي بوم ترسيم و پرميكند. |
font | ويژگي فونت متني رابراي شئcontext تنظيم ويا برگشت ميدهد . |
measureText() | شئي رابرميگرداند كه شامل عرض متن مشحض شده است. |
strokeText() | ترسيم متن روي بوم |
textAlign | تراز را براي محتوي متني تنظيم ويا برگشت ميدهد. |
textBaseline | خط مبناي متن مورد استفاده درهنگام ترسيم را تنظيم ويا برگشت ميدهد. |
خلاصه متدها وويژگي هاي بخش فوق در جدول زير آمده است .تشريح كامل آنها در لينك
متد يا ويژگي | شرح |
---|---|
addColorStop() | رنگ ها و موقعيت توقف را در يك شئ گراديان مشخص ميكند. |
createLinearGradient() | براي استفاده در محتوي بوم، يك گراديان خطي ايجاد ميكند. |
createPattern() | يك عنصر مشخص شده را در يك جهت معين ، تكرار ميكند. |
createRadialGradient() | يك گراديان شعاعي/ دايره اي،ايجاد ميكند).براي استفاده در محتوي بوم( |
fillStyle | رنگ، گراديان والگوي مورد استفاده براي پركردن نقاشي راتنظيم ويا برگشت ميدهد. |
lineCap | سبك سرپوشهاي انتهائي يك خط را تنظيم ويابرگشت ميدهد. |
lineJoin | وقتي دو خط به هم وصل ميشوند، نوع گوشه اتصال راتنظيم ويابرگشت ميدهد. |
lineWidth | عرض خط فعلي را تنظيم ويا برگشت ميدهد. |
miterLimit | حد اكثر طول ميتر(miter) رابرگشت ويا تنظيم ميكند . |
shadowBlur | سطح تاري سايه ها را تنظيم ويابرگشت ميدهد. |
shadowColor | رنگ را براي استفاده در سايه ها را تنظيم ويابرگشت ميدهد. |
shadowOffsetX | فاصله افقي سايه را از شكل ، تنظيم ويا برگشت ميدهد. |
shadowOffsetY | فاصله عمودي سايه را از شكل ، تنظيم ويا برگشت ميدهد. |
strokeStyle | رنگ ، گراديان ويا الگو را براي ترسيم، تنطيم ويا برگشت ميدهد. |
متد | شرح |
---|---|
scale() | ترسيم فعلي را بزرگتر يا كوچكتر مبكند |
rotate() ترسيم فعلي را مي چرخاند. | |
translate() | موقعيت(0,0) روي بوم را دوباره ترسيم ميكند . |
transform() | جانشين ميكند ماتريس فعلي تبديل را براي ترسيم. |
setTransform() | ماتريس تبديل با اين متد بازنشاني(reset) ميشود .
اين ماتريس مبناي شروع ويا ادامه است. |
متد ها و ويژگي تصويري روي عنصر بوم مطابق جدول زيراست.
متد يا ويژگي | شرح |
---|---|
drawImage() | تصوير، ويدئو و يا بوم را دريك بوم ترسيم ميكند. |
createImageData() | يك شئ جديد وخاليImageData ايجاد ميكند. |
getImageData() | يك شئImageData رابرگشت ميدهد، و داده هاي پيكسلي براي مستطيل بوم كپي ميشود. |
ImageData.data | شئي را برگشت ميدهد كه حاوي داده هاي تصويري يك شئImageData مشخص شده است. |
ImageData.height | ارتفاع يك شئImageData رابرگشت ميدهد. |
ImageData.width | عرض يك شئImageData رابرگشت ميدهد. |
putImageData() | داده هاي تصويري از شئImageData مشخص را برروي بوم برميگرداند. |
ويژگي | شرح |
---|---|
globalAlpha | مقدار شفافيت(Alpha) فعلي نقاشي را تنظيم ويابرگشت ميدهد . |
globalCompositeOperation | نحوه ترسيم يك تصوير جديد بر روي يك تصوير موجود را تنظيم ويا برگشت ميدهد. |
متد | شرح |
---|---|
clip() | ناحيه اي به هر شكل واندازه را ازبوم اصلي جدا ميكند. |
save() | وضعيت شئcontext فعلي وتمام ويژگي هاي آن راذخيزه ميكند. |
restore() | ذخيره شده قبلي رابازيابي ميكند. |
createEvent() | يك شئ رويدادي ايجاد ميكند. |
getContext() | شئ دو بعدي براي ترسيم در بوم ايجاد ميكند |
toDateURL() |