html5

آموزش HTML Graphics -Canvas

فهرست

۱- HTML Canvas
2- کشیدن نقاشی روی بوم
۳- مختصات بوم در html

سلام. باعث خوشحالییه که آموزشهای میخک را از سوفرا، دنبال می کنید. این بار قراره درمورد  گرافیک در وب، آن هم از نوع html،  با سوفرا همرا باشید.

HTML Canvas

تگ canvas، برای رسم گرافیک در یک صفحه وب استفاده می شود.

گرافیک  زیر که ، با تگ <canvas> ایجاد شده است، نمونه از گرافیک در وب است.

www.w3schools.com

HTML Canvas

یک بوم (Canvas )،  یک ناحیه مستطیلی در یک صفحه HTML است. به طور پیشفرض، یک بوم دارای مرز و محتوایی نیست.

کد html آن، به صورت زیر است:
همیشه  ویژگی  id  که برای اشاره به یک اسکریپت است و ویژگیهای width و height برای تعیین طول عرض بوم را مشخص کنید. برای اضافه کردن یک مرز(border) از ویژگی style استفاده می شود.

در ویرایشگر زیر،  نمونه  ای از یک بوم پایه و خالی با نام آی دی myCanvas، ایجاد شده است. به این صورت که با استفاده از ویژگی style، یک border به دادیم:

همونطور که  می دونید  از بوم برای کشیدن چیزی، استفاده می کنند. در ادامه ما می خواهیم نحوه نقاشی کشیدن روی بوم(canvas)  را در وب  یاد بگیریم.

کشیدن نقاشی روی بوم با JavaScript


برای کشیدن چیزی روی بوم، نیاز به قلم داریم. در گرافیک در وب ، ما از جاوا اسکریپت به عنوان قلم استفاده میکنیم. بعد از ایجاد بوم، مراحل زیر را انجام می دهیم:

var canvas = document.getElementById(“myCanvas”);

۱) پیدا کردن تگ canvas

در ابتدا باید تگ canvas را پیدا کنیم.این کار توسط متد getElementById از html DOM انجام میگیرد.

۲) ایجاد شی ای برای رسم(قلم)

در مرحله دوم مابه یک قلم جهت رسم بر روی بوم نیاز داریم. شی getContext() دارای ویژگی ها و متدهایی برای رسم میباشد:

var ctx = canvas.getContext(“2d”);

ورودی ۲d و مفهوم آن این است که طرح ما دو بعدی است.

۳) رسم روی بوم

اکنون موقع رسم فرا رسیده است. با fillStyle آبجکت رسم را با رنگ قرمز ست می کینم.

ctx.fillStyle = “#FF0000”;

ویژگی fillStyle میتونه یک گرادیانت، پترن و… باشد.

fillRect(x,y,width,height) با این متد هم میتونم داخل بوم یک مستطیل بکشیم و با fillStyle رنگ آن را قرمز کنیم.

  مختصات canvas درhtml

canvas یک سیستم صفحه آرایی دو بعدی است. گوشه سمت چپ و بالا مختصات (۰و۰) را ر این کد شامل میشود. در قسمت قبل با استفاده از متد fillRect(0,0,150,75) یک مستطیل کشیدیم. به این معنا که از مختصات(۰و۰) شروع، و یک مستطیل ۱۵۷×۷۵ پیکسلی کشیدیم.

رسم خط

برای رسم خط از متد های زیر استفاده می کنیم:
moveTo(x,y) – تعریف نقطه شروع از یک خط
lineTo(x,y) – تعریف نقطه پایان از یک خط

از متد stroke() به عوان جوهر جهت رسم خط استفاده میکنیم. برای دسترسی به کد و اجرای آن به
۱ myCanvas مراجعه کنید

رسم دایره

برای رسم یک دایره روی بوم ، باید از متد های زیر استفاه کنیم:
beginPath() – شروع مسیر
arc(x,y,r,startangle,endangle) –

See the Pen bzRvom by m (@intelmahaz1234) on CodePen.0

ملا نصر الدین همیشه اشتباه می کرد

ملا نصر الدین هر روز در بازار گدایی می کرد، و مردم با نیرنگی، حماقت او را دست می انداختند.
دو سکه به او نشان می دادند که یکی شان از طلا بود و دیگری از نقره.
اما ملا نصرالدین همیشه سکه نقره را انتخاب می کرد.
این داستان در تمام منطقه پخش شد.
هر روز گروهی زن و مرد می آمدندو دو سکه به او نشان می دادند و ملا نصر الدین همیشه سکه نقره را انتخاب می کرد.
تا اینکه مرد مهربانی از راه رسید و از این که ملا نصر الدین را آن طور دست می انداختند، ناراحت شد.
در گوشه میدان به سراغش رفت و گفت:” هر وقت دو سکه به تو نشان دادند، سکه طلا را بردار. این طوری هم پول بیشتری گیرت می آید و هم دیگر دستت نمی اندازند.”
ملا نصر الدین پاسخ داد:” ظاهرا حق با شماست. اما اگر سکه طلا را بردارم دیگر مردم به من پول نمی دهند تا ثابت کنند من از آنها احمق ترم. شما نمی دانید تا حالا با این کلک چه قدر پول گیر آورده ام!!”

” اگر کاری که می کنی هوشمندانه باشد، هیچ اشکالی ندارد که تو را احمق بدانند…”

مسجد بهلول

مسجد بهلول

می‌گویند: مسجدی می‌ساختند، بهلول سر رسید و پرسید: چه می‌کنید؟ گفتند: مسجد می‌‌سازیم.
گفت: برای چه، پاسخ دادند: برای چه ندارد، برای رضای خدا. بهلول خواست میزان اخلاص بانیان خیر را به خودشان بفهماند، محرمانه سفارش داد سنگی تراشیدند و روی آن نوشتند «مسجد بهلول» و شبانه آن را بالای سر در مسجد نصب کرد. سازندگان مسجد روز بعد آمدند و دیدند بالای در مسجد نوشته شده است «مسجد بهلول». ناراحت شدند؛ بهلول را پیدا کرده به باد کتک گرفتند که زحمات دیگران را به نام خودت قلمداد می‌کنی؟! بهلول گفت: مگر شما نگفتید که مسجد را برای خدا ساخته ‌ایم؟ فرضاً مردم اشتباه کنند و گمان کنند که من مسجد را ساخته ‌ام، خدا که اشتباه نمی‌کند

پاسخ جالب بهلول عاقل

پاسخ جالب بهلول عاقل

روزی بهلول از مسجد «ابوحنیفه» می‌گذشت، دید خطیب مردم را موعظه می‌کند. ایستاد و به سخنانش گوش داد. او می‌گفت: جعفربن محمد عقیده دارد که کارها با اختیار از بندگان، در صورتی که آنچه از بندگان انجام می‌دهند خواست خداست و انسان از خود اختیاری ندارد. دیگر این که در روز قیامت شیطان در آتش می‌سوزد و حال آن که شیطان از آتش آفریده شده است و آتش هم جنس خود را عذاب نمی‌کند.
بهلول و طبیب

دیگر این که خداوند موجود است؛ ولی نمی‌شود او را دید، در صورتی که این دروغ است و هر موجودی دیدنی است.

آنگاه بهلول کلوخی از زمین برداشت و سر خطیب را هدف گرفت و آن را شکست و خون جاری شد، سپس فرار کرد. خطیب نزد خلیفه آمد و از بهلول شکایت کرد.

خلیفه دستور داد بهلول را بیاورند و چون بهلول حاضر شد به او گفت: چرا چنین کردی؟

بهلول گفت: علت را از خود وی سوال کنید. او می‌گوید: بندگان اختیاری ندارند و همه کارها به دست خداست. اگر اعتقاد او چنین است پس سر او را خداوند شکسته و من تقصیری ندارم.

او می‌گوید: جنس از هم جنس خود متاثر نمی‌شود و عذاب نمی‌بیند وقتی انسان از خاک است چرا باید از همجنس خود متاثر و ناراحت شود؟

او معتقد است که هر موجودی باید دیده شود. خلیفه از وی سوال کند که آیا این درد که او از این زخم احساس می‌کند دیده می‌شود؟! این را گفت و از نزد خلیفه رفت.

منبع: بهلول عاقل

تنظیم: هدهدی، گروه دین و اندیشه تبیان

شکارچی….

شکارچی….

مردی از کنار جنگلی رد می شد ، شیری را دید که برای شغالی را خط ونشان می کشد . شغال به خانه رفت و در را بست ولی شیر همچنان به حرکات رزمی اش ادامه داد و شغال را به جدال فرا خواند . مرد سرگرم تماشای آنان بود که کلاغی از بالای درخت از او پرسید چه چیز تو را این چنین متعجب کرده است؟
مرد گفت: به خط و نشانهای شیر فکر می کنم ،شغال هم بی توجه به خانه اش رفته بیرون نمی آید!
کلاغ گفت ای نادان آنها تو را سرگرم کرده اند تا روباه بتواند غذایت رابخورد !
مرد دید غذایش از دستش رفته از کلاغه پرسید روباه غذایم را برد شیر و شغال را چه حاصل؟
کلاغه چنین توضیح داد : روباه گرسنه بود توان حمله نداشت ، غذایت را خورد و نیرو گرفت، شیرهم بدنش کوفته بود خودش را گرم کرد تا هنگام حمله آماده باشد و شغال هم خسته بود رفت خانه تا نیرویی تازه کند تا آن زمان که جلوتر رفتی هرسه بتو حمله کنند و تو را بخورند!؟
مردپرسید: از اطلاعاتی که به من دادی تو را چه حاصل؟
کلاغ گفت: آنها کیسه زر تو را به من وعده داده بودند تا تو را سرگرم کنم.

زاهد و مرد مسافر

زاهد و مرد مسافر

مرد زاهدی که در کوهستان زندگی می کرد ،کنار چشمه ای نشست تا آبی بنوشد و خستگی در کند .سنگ زیبایی درون چشمه دید .آن را برداشت و در خورجینش گذاشت و به راهش ادامه داد .در راه به مسافری برخورد کرد که از شدت گرسنگی با حالت ضعف افتاده بود .کنار او نشست و از داخل خورجینش نانی بیرون آورد و به او داد .مرد گرسنه هنگام خوردن نان ،چشمش به سنگ گران بهای درون خورجین افتاد . نگاهی به زاهد کرد و گفت :« آیا آن سنگ را به من می دهی ؟ »زاهد بی درنگ سنگ را درآورد و به او داد .مسافر از خوشحالی در پوست خود نمی گنجید .او می دانست که این سنگ آنقدر قیمتی است که با فروش آن می تواند تا آخر عمر در رفاه زندگی کند ، بنابراین سنگ را برداشت و با عجله به طرف شهر حرکت کرد .چند روز بعد ، همان مسافر نزد زاهد آمد و گفت :« من خیلی فکر کردم ، تو با این که می دانستی این سنگ چه قدر ارزش دارد ،خیلی راحت آن را به من هدیه کردی . »بعد دست در جیبش برد و سنگ را در آورد و گفت :« من این سنگ را به تو برمی گردانم ولی در عوض چیز گران بهاتری از تو می خواهم .به من یاد بده که چگونه می توانم مثل تو باشم ؟

استاد عشق

پروفسور حسابی در بازگویی روز های بازپسین از همه میگویند ، از پدر ، مادربزرگ ، همسر و هرکس که در گذر زندگی دستی و آغوشی به مهربانی به سوی ایشان گشوده اند. از مادربزرگ خود بارها و بارها با لفظ خانم یاد میکنند و آنجا که فرزندشان در پرسشی ناخواسته و نابه هنگام از لفظ خانم و آقا و تاکید هماره پدر میپرسند در پاسخ به تاکید میگویند : ” خانم یا آقا بودن آسان نیست ، سابقه ، تربیت و نجابت باید فراهم باشد. ایمان واعتقاد از ارکان خانم و آقا بودن است، اگر خانم و آقایی به این مرتبه برسند میدانند که چه کارهایی باید انجام دهند و چه کارهایی نباید انجام دهند. یا به قول حافظ آنقدر هست که بانگ جرسی می آید … خانم و آقا هیچگاه دروغ نمی گویند و در نشست و برخاست و خیلی از مسائل اجتماعی آداب لازم را رعایت میکنند. “

طراحی سیستم های پیچیده نرم افزاری

سیستم های پیچیده نرم افزاری از طریق یک فرآیند توسعه که چرخه حیات سیستم نامیده میشود تهیه می شوند که این چرخه شامل مراحل زیر است :

۱- نیازمندی ها : همه پروژه های برنامه نویسی با مجموعه ای از مشخصات که هدف پروژه را مشخص میکند شروع میشوند.

در نیازمندی ها ورودی برنامه نوصیف شده که معمولا خیلی دقیق نیست و برنامه نویس میبایست با درنظر گرفتن حالات مختلف خروجی مورد نیاز را تولید کند.

۲- تجزیه و تحلیل : ما در این مرحله پس از مشخص شدن نیازمندی ها اقدام به تقسیم کردن مسئله به بخش های کوچکتر که قابلیت حل دارند می نماییم.

دو روش برای این کار وجود دارد یکی زوش بالا به پایین (top down) و دیگری روش پایین به بالا (bottom up). از آنجایی که برنامه نویس ها ای که دید کاملی از پروژه ندارند اغلب از روش پایین به بالا استفاده میکنند و همانند ساختمان سازی که با ایجاد قسمت های مختلف مانند دیوار ها ، سقف و غیره اقدام به ساخت و ساز میکنند در اینجا نیز برنامه ها با استفاده از قطعه های کوچک ساخته میشوند و توجه ای به هدف ایجاد ساختمان نمی شود !

بیشتر برنامه نویسان تازه کار باور دارند که با این روش می توانند برنامه های خالی از خطا بسازند و نیازی به دید کامل از مسئله و نقشه نیست. درحالی که در روش بالا به پایین با یک دید کلی از مسئله آن را به قسمت های کوچک و با جزئیات بیشتر تقسیم میکنیم که برای ایجاد سیستم های پیچیده ترجیح داده میشود.

۳- طراحی: در این فاز در ادامه کارهایی که در بخش تحلیل انجام دادیم اشیاء داده ای و عملیات هایی که روی آنها انجام خواهد گرفت را بررسی نموده که تحلیل داده ای باعث ایجاد انواع داده های انتزائی (Abstract Data Type) میشود و تحلیل عملیات ها باعث طراحی و پیاده سازی الگوریتم ها و روال های مخصوص آنها میشود.

۴- پالایش و کد نویسی : در این مرحله با کدنویسی نمایش های خاص الگوریتم ها و داده ها را با استفاده از یک زبان برنامه نویسی ایجاد میکنیم و چون طراحی با دقت صورت گرفته است تغییرات میتوانند به راحتی کد نویسی شده و با سرعت بیشتری انجام شوند.

۵- اعتبار سنجی : در این مرحله با استفاده از ورودی های متنوع صحت خروجی و کارکرد برنامه را بررسی نموده و خطا ها را برطرف میکنیم.

برای نشان دادن صحت عملکرد برنامه می توان از اثبات های ریاضی استفاده نمود اما معمولا این کار مشکل بوده لذا استفاده از الگوریتم هایی که قبلا درستی آنها اثبات شده است این کار را راحت تر میکند.