PDA

View Full Version : آموزش: گرافیک : رسم مثلث و تغییر مقایس در نقطه 0 مبدأ مختصات



Louai_M
یک شنبه 28 مهر 1392, 20:13 عصر
با سلام

در این آموزش یک مثل را رسم می کنم و آن را در جای خود تغییر مقیاس می دهید.
مراحل تغییر مقیاس در جای خود (یعنی نقطه مرکزی مثلث ثابت است)
1- رسم مثلث
2- انتقال آن به نقطه صفر مبدأ مختصات
3- تغییر مقیاس
4- انتقال معکوس (یعنی بازگردانی مثلث به نقطه مرکزی قبلی)

ابتدا در قسمت کتابخانه ها کتابخانه Drawing را اضافه کنید



using System.Drawing;


سپس در قسمت تعریف متغییر های عمومی X و Y های پاره خط ها را تعریف می کنیم.



int x1 = 200, x2 = 110, x3 = 290;
int y1 = 10, y2 = 100, y3 = 100;


سپس یک دکمه برای رسم مثلث در نظر میگیریم و داخل آن کدهای زیر را می نویسیم



Graphics g;
g = Form1.ActiveForm.CreateGraphics();
Pen p = new Pen(Color.Black, 2);
g.DrawLine(p, x1, y1, x2, y2);
g.DrawLine(p, x1, y1, x3, y3);
g.DrawLine(p, x2, y2, x3, y3);

توضیحات : در خط1) متغییر از نوع Graphics با نام مستعار g تعریف می کنیم که سیستم بداند ما شی گرافیک داریم رسم می کنیم
خط 2) می گوید که شی گرافیکی را برروی فرم بکش
خط 3) قلم یا همان pen برای رسم پاره خط ها تعریف می کنیم رنگ و ضخامت آن تعیین می شود.
خط 4تا 6 ) سه پاره خط را برای ما رسم می کند که موقع اجرا برا اساس مشخصات داده شده به شکل مثلث نشان داده خواهند شد.

مرحله بعد:
یک دکمه دیگر جهت تغییر مقیاس و یک تکست باکس که ضریب تغییرات را از کاربر دریافت کند قرار می دهیم درون دکمه کدها زیر را می نویسیم.



int plus1 = int.Parse(txtplus.Text);
Graphics g;
g = Form1.ActiveForm.CreateGraphics();
Pen p = new Pen(Color.Blue,2);
int xm, ym;
int x1_1, x2_2, x3_3;
int y1_1, y2_2, y3_3;
xm = (x1 + x2 + x3) / 3;
ym = (y1 + y2 + y3) / 3;
x1_1 = ((x1 - xm) * plus1) + xm;
x2_2 = ((x2 - xm) * plus1) + xm;
x3_3 = ((x3 - xm) * plus1) + xm;
y1_1 = ((y1 - ym) * plus1) + ym;
y2_2 = ((y2 - ym) * plus1) + ym;
y3_3 = ((y3 - ym) * plus1) + ym;
g.DrawLine(p, x1_1, y1_1, x2_2, y2_2);
g.DrawLine(p, x1_1, y1_1, x3_3, y3_3);
g.DrawLine(p, x2_2, y2_2, x3_3, y3_3);


توضیحات :
خط 1) داده های وارد شده در تکست باکس را از نوع عدد تعریف کدیم
خط 2 تا 4) قبلاً توضیح دادیم
خط 5) دو متغیر برای بدست آوردن نقطه صفر مبدأ محور مختصات تعریف می کنیم.
خط 6 و 7) تعریف متغییر ها برای دریافت داده های جدید بدست آمده.
خط 8 و 9) فرمول بدست آوردن نقطه 0 محور X و Y می باشد.
خط 10 تا 15) یکی از آنها را توضیح می دهم ما بقی شبیه آن هستند. X1 جدید را بدست می آوریم برای اینکار x1 قبلی را از xm (مجموع Xها تقسم برتعداد ) کم می کنیم تا پاره خط به نقطه 0 مبدأ مختصات منتقل شود سپس ضرب بر ضریب دریافتی از کاربری می کنیم پاره خط بزرگ می شود و در نهایت آن را با xm جمع می کنیم که به نقطه مرکز مثلث قبلی بازگردد با فرق اینکه اندازه آنها افزایش یافته بدون جابه جا شدن مثلث.

خط 16 تا 18) رسم پاره خطها با مختصات جدید.


امید وارم مورد پسند واقع شود.