hadikhani
جمعه 28 فروردین 1394, 13:24 عصر
سلام من باید برای پروژه درس گرافیک نرم افزاری شبیه paint بسازم که قابلیت رسم اشکالی مانند خط دایره مربع مثلث و بیضی رو داشته باشه و اندازه رنگ و حاشیه باید توسط کاربر تعیین بشه.
با کد زیر تونستم خط رو بکشم اما هرکاری کردم نتونستم حاشیه رو به Dashed , Dotted تغییر بدم.
void Draw_line(int x_1, int y_1, int x_2, int y_2)
{
pictureBox1.Image = bmp;
int x1 = x_1;
int y1 = y_1;
int x2 = x_2;
int y2 = y_2;
if (x1 > x2)
{
x1 = x_2;
y1 = y_2;
x2 = x_1;
y2 = y_1;
}
float dx = (x2 - x1);
float dy = (y2 - y1);
int steps = (int)dy;
if (dx > dy)
steps = (int)dx;
float x_inc = (dx / (float)steps);
float y_inc = (dy / (float)steps);
float x = x1;
float y = y1;
bmp.SetPixel(Convert.ToInt32(x), Convert.ToInt32(y), Color.Black);
for (int count = 1; count <= steps; count++)
{
x += x_inc;
y += y_inc;
bmp.SetPixel(Convert.ToInt32(x), Convert.ToInt32(y), Color.Black);
}
}
با کد زیر تونستم خط رو بکشم اما هرکاری کردم نتونستم حاشیه رو به Dashed , Dotted تغییر بدم.
void Draw_line(int x_1, int y_1, int x_2, int y_2)
{
pictureBox1.Image = bmp;
int x1 = x_1;
int y1 = y_1;
int x2 = x_2;
int y2 = y_2;
if (x1 > x2)
{
x1 = x_2;
y1 = y_2;
x2 = x_1;
y2 = y_1;
}
float dx = (x2 - x1);
float dy = (y2 - y1);
int steps = (int)dy;
if (dx > dy)
steps = (int)dx;
float x_inc = (dx / (float)steps);
float y_inc = (dy / (float)steps);
float x = x1;
float y = y1;
bmp.SetPixel(Convert.ToInt32(x), Convert.ToInt32(y), Color.Black);
for (int count = 1; count <= steps; count++)
{
x += x_inc;
y += y_inc;
bmp.SetPixel(Convert.ToInt32(x), Convert.ToInt32(y), Color.Black);
}
}