گرافیک در #C

رسم مستطیل

برای رسم مستطیل از کلاس Rectangle استفاده می کنیم. از این کلاس برای رسم دایره و بیضی نیز استفاده می شود.

دستور زیر را به دستورات قبل اضافه کنید:

Rectangle recOne = new Rectangle( 150, 10, 50, 200 );

این یک شیء از نوع Rectangle و با نام recOne ایجاد می کند. در میان پرانتزها ۲ مجموعه عدد داریم. دو عدد اول ۱۵۰ و ۱۰ هستند که مشخص می کنند مستطیل چقدر از سمت چپ فاصله داشته باشد و چقدر پایین باشد. دو عدد دوم ۵۰ و ۲۰۰ هستند که اولی پهنای مستطیل و دومی ارتفاع آن را مشخص می کند.

برای کشیدن مستطیل از متد DrawRectangle استفاده می کنیم:

surface.DrawRectangle( pen1, recOne );

کدهای ما تا اینجا:

رسم مستطیل در سی شارپ

بعد از اجرای برنامه باید چیزی شبیه زیر را ببینید:

رسم مستطیل در سی شارپ

ما می توانیم هر یک از مشخصه های مستطیل را به صورت جداگانه مشخص کنیم.برای این کار به صورت زیر عمل می کنیم:

Rectangle recTwo = new Rectangle();

recTwo.X = 20;
recTwo.Y = 20;
recTwo.Width = 100;
recTwo.Height = 100;

surface.DrawRectangle(pen1, recTwo);

برای اینکه یک بیضی یا دایره رسم کنیم از دستور زیر به جای آخرین دستور در کد بالا استفاده می کنیم:

surface.DrawEllipse( pen1, recOne );

تنها چیزی که تغییر کرد DrawEllipse بود که به جای DrawRectangle آمد. همچنین می توانیم اندازه های جدیدی را به صورت زیر به بیضی اختصاص دهیم:

surface.DrawEllipse(pen1, 100, 10, 200, 200);

براش ها

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

دستور زیر را به کد خود اضافه کنید:

SolidBrush brushOne = new SolidBrush(Color.Blue);

در اینجا ما یک شیء براش ایجاد کرده و رنگ آن را آبی قرار دادیم. حالا برای اینکه مستطیل را با این براش رنگی کنیم از دستور زیر استفاده می کنیم:

surface.FillRectangle( brushOne, recTwo );

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

چند نوع دیگر براش نیز وجود دارد که عبارتند از:

HatchBrush
LinearGradientBrush
PathGradientBrush
TextureBrush

در کد زیر از HatchBrush به جای SolidBrush استفاده کرده ایم:

ایجاد براش در سی شارپ

برای اینکه بتوانیم از HatchBrush در برنامه استفاده کنیم باید دستور زیر را به بالای پنجره کدنویسی اضافه کنیم:

using System.Drawing.Drawing2D;

 

رسم چند ضلعی ها

برای رسم چندضلعی ها، یک مجموعه نقطه ایجاد می کنیم و بعد آنها را به متد DrawPolygon می فرستیم.

اولین کاری که باید انجام دهیم ایجاد آرایه ای از نقاط است:

Point[] polygonPoints = new Point[5];

این دستور یک آرایه از نوع Point و با نام polygonPoints ایجاد می کند. ما در این آرایه ۵ نقطه قرار داده ایم(در میان کروشه ها مشخص می کنیم که چند ضلعی ما چند نقطه دارد).

هر یک از نقاط دارای مختصات X و Y هستند. X فاصله نقطه از سمت چپ فرم است و Y نیز فاصله نقطه از بالای فرم است. برای تنظیم مقدار X و Y مربوط به هر یک از نقاط از دستورات زیر استفاده کنید:

polygonPoints[0] = new Point(113, 283);
polygonPoints[1] = new Point(70, 156);
polygonPoints[2] = new Point(180, 70);
polygonPoints[3] = new Point(290, 156);
polygonPoints[4] = new Point(250, 283);

حالا این نقاط را برای ایجاد چندضلعی به متدDrawPolygon  می فرستیم:

surface.DrawPolygon( pen1, polygonPoints );

در میان پرانتزهایDrawPolygon  ابتدا به یک Pen نیاز داریم و بعد به آرایه نقاط .

برای پر کردن (رنگی کردن) چندضلعی از دستور زیر استفاده کنید:

surface.FillPolygon( brushOne, polygonPoints );

نتیجه اجرای کد بالا به صورت زیر است:

رسم چندضلعی در سی شارپ

کشیدن متن

می توان به جای نوشتن متن، آن را رسم کرد. برای این کار ما باید ابتدا یک فونت، یک براش و یک جهت متن اختیاری تعریف کنیم و بعد متن مورد نظر را روی فرم رسم کنیم:

picgraphic7

دستور اول، یک فونت با نام drawFont ایجاد کرده و سپس این فونت را از نوع Arial و با اندازه ۲۰ قرار می دهد.

دستور دوم یک براش با نام drawBrush و با رنگ سیاه ایجاد می کند.

برای رسم یک متن روی فرم، از متد DrawString استفاده می کنیم. در میان پرانتزهای این متد چند گزینه داریم. ما ابتدا متن مورد نظر خود را می نویسیم (می توان آن را از یک textBox نیز گرفت). سپس فونت و براش مورد نظر را می آوریم. در آخر هم محل قرار گرفتن متن را با کمک اعداد به سی شارپ می گوییم. این اعداد به ترتیب فاصله متن با فرم از چپ و از بالا هستند.

برای ایجاد متن عمودی باید از StringFormat استفاده کنیم:

StringFormat  drawFormat = new  StringFormat();
drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;

کد ما تا اینجا به شکل زیر است:

رسم چندضلعی در سی شارپ

/ 1 نظر / 11 بازدید
ali

سلام عزیز خسته نباشی من دانشجو کامپیوترم الان یه پروژه دارم که استادمون گفته قطعه کد مربع و مستطیل تو خالی به زبان c#برام بیار که موندم توش اگه امکانش هست و بلدی ممنون میشم برام ایمیل کنی