گرافیک در #C
گرافیک در #C قسمت 1
ساده ترین کار با گرافیک رسم اشکال هندسی است.
نکته: گرافیک فقط در Windows Form قابل اجرا است و در محیط کنسولیِ سی شارپ قابل اجرا نیست ,
زیرا محیط کنسولی فقط جنبه ی متنی دارد.
از گرافیک فقط برای رسم اشکال استفاده نمیشود و کاربرد های زیاد دیگری هم دارد که درباره آن در قسمت های بعد حتما بحث خواهیم کرد.
برای استفاده از گرافیک در #C ابتدا باید متغیری از نوع گرافیک تعریف کنیم. مثال:
1 2 | Graphics نام متغییر; Graphics g; |
حالا باید برای این متغیرِ گرافیکیمون مشخص کنیم که باید روی چه چیزی اعمال شود.
به زبان ساده تر , میخواهیم روی کدام شئ نقاشی بکشیم.
فکر کنید ما در فرممون یک Panel یک Label و یک TextBox داریم. برای اعمال کردن متغیر g روی این اشیاء از کد زیر استفاده میکنیم. مثال:
1 2 | g = this.CreateGraphics(); برای اعمال کردن روی فرممون g = label1.CreateGraphics(); برای اعمال کرد روی لیبلمون |
پس فقط کافیه به جای label1 یا this نام شی دیگری که در اختیار داریم رو قرار بدیم تا گرافیک رو روی اون اعمال کنیم
نکته: یک متغیر گرافیک را فقط در یک شی میتوان اعمال کرد.
مثلا اگر بیاییم همزمان بنویسیم
1 2 | g = this.CreateGraphics(); g = label1.CreateGraphics(); |
متغییر g روی اخرین شی ای که اعمال کردیم می نشیند,
یعنی در اینجا روی label1.
میتوان توی بعضی از شکل های هندسی را با رنگ دلخواه پر کرد که باز هم در قسمت های بعد بهتر متوجه خواهید شد.
برای کشیدن اشکال های مختلف به یک سری چیز ها اعم از شیء Pen , شیء Brush و متغییر Point و برای راحتی برای بعضی اشکال از متغیر Rectangle استفاده میکنیم.
در مثال زیر ما یک متغیر از نوع Pen میسازیم.
1 | Pen نام متغییر = new Pen(قطر,رنگ); |
اگر قطری مشخص نکنیم به صورت پیش فرض 1 در نظر گرفته میشود.
1 | Pen p = new Pen(Color.Red,2); |
برای کشیدن یک خط به غیر از تایین نوع قلم باید دو نقطه را مشخص کنیم. یعنی یک x و y برای نقطه شروع و یک x و y دیگر برای نقطه پایان.
میتوان دو متغیر Point تعریف کرد یا 4 نقطه را تایین کرد. مثال:
1 2 3 4 5 6 7 8 9 10 | g.DrawLine(new Pen(Color.Red,2),10,10,50,60); //یا g.DrawLine(new Pen(Color.Black,5),new Point(10,2),new Point(50,50)); //یا Pen p = new Pen(Color.Blue,2); Point p1; p1=new Point(10,10); Point p2; p2=new Point(50,100); g.DrawLine(p,p1,p2); |
پایان این قسمت,
امیدوارم این آموزش مفید بوده باشه.
ببخشید در این آموزش (کلا C#) مبدا مختصات برای آدرس دهی نقاط کجاست ؟