سلام دوستان. کم کم به فصلهای انتهایی کتاب نزدیک میشیم. فصلی که امروز منتشر کردم در مورد کار با canvas و رابطهای مربوط به اونه.
امیدوارم که برای شما مفید باشه.
در این فصل به بحث دربارهی تکنیکهای ترسیم گرافیک در مرورگر پرداختیم و تمرکز ما روی عنصر <canvas>
بود.
یک گرهی canvas نمایانگر ناحیهای است در سند که برنامهی ما در آن قسمت به ترسیم خواهد پرداخت. این ترسیم توسط یک شیء بستر (context) ترسیم انجام می شود که توسط متد getContext
ایجاد می گردد.
رابط ترسیم دوبعدی (2D) این امکان را به ما می دهد تا اشکال متنوعی را رنگ کرده یا خط مرزی بدهیم. خاصیت fillStyle
این بستر (context) نحوهی رنگآمیزی اشکال را مشخص می کند. خاصیتهای strokeStyle
و lineWidth
نحوهی ترسیم خطوط را کنترل می کنند.
چهارضلعی ها و بخشهای متنی را می توان با یک فراخوانی متد ترسیم کرد. دو متد fillRect
و strokeRect
برای ترسیم چهارضلعی و متدهای fillText
و strokeText
برای رسم متن استفاده می شوند. برای ترسیم اشکال دلخواه، ابتدا باید یک مسیر ایجاد کنید.
فراخوانی متد beginPath
باعث ایجاد یک مسیر جدید می شود. چند متد دیگر برای افزودن خطوط و منحنیها به همین مسیر فراخوانی می شوند. به عنوان مثال، lineTo
یک خط مستقیم اضافه می کند. زمانی که یک مسیر به پایان رسید، می توان با متد fill
آن را پر (رنگ) کرد یا با استفاده از متد stroke
دور آن خط مرزی رسم کرد.
حرکت دادن پیکسلها از یک تصویر یا یک canvas دیگر به canvas ما توسط متد drawImage
انجام می پذیرد. به صورت پیشفرض، این متد کل تصویر مبدا را رسم می کند، اما با مشخص کردن پارامترهای بیشتر می توانی یک ناحیهی خاص از تصویر را کپی کرد. ما از این روش برای بازی خودمان و کپی کردن حالتهای کاراکتر بازی از یک تصویر که شامل همهی حالت ها بود استفاده کردیم.
دگرگونسازی (transformation) این امکان را به شما می دهد که یک شکل را به صورتهای متعدد ترسیم کنید. یک بستر ترسیم دوبعدی، دارای شکلی است که میتوان آن را با استفاده از translate
، scale
و rotate
تغییر داد. این تغییرات روی تمامی ترسیمهای بعدی تاثیر می گذارد. یک حالت دگرگونسازی را می توان با استفاده از متد save
ذخیره کرد و با متد restore
بازگردانی کرد.
زمانی که یک تصویر متحرک را روی یک canvas نمایش می دهیم، متد clearRect
را می توان برای پاکسازی یک قسمت از canvas قبل از ترسیم دوباره استفاده کرد.