- قابلیت ترسیم اشیا روی بوم گرافیکی دلخواه
- قابلیت جابجایی اشیا
- قابلیت تغییر رنگ اشیا
- ترسیم اشیا توپر و تو خالی
- تعیین پهنای خط شی ترسیم شده
- تعیین رنگ پس زمینه در صورت تو پر بودن شی
- قابلیت پیش نمایش رسم شکل در زمان ترسیم اشیا
- توانایی انتخاب اشیا
- تعیین عمق شی روی بوم گرافیکی مورد نظر
- ترسیم اشیایی مانند خط، دایره، بیضی، مربع، مستطیل، لوزی، مثلث
- قابلیت تغییر اندازه اشیا ترسیم شده
خوب برای شروع ابتدا یک پروژه از نوع Windows Application ایجاد میکنیم (البته برای این قسمت میتوانیم یک پروژه Class Library ایجاد کنیم)
سپس یک پوشه به نام Models به پروزه اضافه نمایید.
خوب در این پروژه یک کلاس پایه به نام Shape در نظر میگیریم.
همه اشیا ما دارای نقطه شروع، نقطه پایان، رنگ قلم، حالت انتخاب، رنگ پس زمینه، نوع شی، .... میباشند که بعضی از خصوصیات را توسط خصوصیات دیگر محاسبه میکنیم. مثلا خاصیت Width و Height و X و Y توسط خصوصیات نقطه شروع و پایان میتوانند محاسبه شوند.
ساختار کلاسهای پروزه ما به صورت زیر است که مرحله به مرحله کلاسها پیاده سازی خواهند شد.
با توجه به تصویر بالا (البته این تجزیه تحلیل شخصی من بوده و دوستان به سلیقه خود ممکن است این ساختار را تغییر دهند)
نوع شمارشی ShapeType: در این نوع شمارشی انواع شیهای موجود در پروژه معرفی شده است
محتوای این نوع به صورت زیر تعریف شده است:
namespace PWS.ObjectOrientedPaint.Models { /// <summary> /// Shape Type in Paint /// </summary> public enum ShapeType { /// <summary> /// هیچ /// </summary> None = 0, /// <summary> /// خط /// </summary> Line = 1, /// <summary> /// مربع /// </summary> Square = 2, /// <summary> /// مستطیل /// </summary> Rectangle = 3, /// <summary> /// بیضی /// </summary> Ellipse = 4, /// <summary> /// دایره /// </summary> Circle = 5, /// <summary> /// لوزی /// </summary> Diamond = 6, /// <summary> /// مثلث /// </summary> Triangle = 7, } }