mehr_ara
سه شنبه 07 آبان 1392, 00:24 صبح
دوستان سلام
بنده برنامه ای نوشتم راجع به رسم خط با استفاده از الگوریتم برسنهام
دنبال متدی در زبان سی شارپ میگردم که ایکس و y را به عنوان ورودی به ان بدهم و خط را رسم کند
متد و نحوه ی استفادشو بهم بگید ممنون میشم
samin_panahi
سه شنبه 07 آبان 1392, 00:53 صبح
سلام این تابع برسنهام هست:
void B_H(int x1, int y1, int x2, int y2)
{
int dx = Math.Abs(x2 - x1);
int dy = Math.Abs(y2 - y1);
int p = (2 * dy) - dx;
int x = x1;
int y = y1;
int step = 0;
if (dx > dy)
{
step = dx;
}
else
{
step = dy;
}
for (int i = 0; i < step; i++)
{
x++;
if (p < 0)
{
p += 2 * dy;
}
else
{
y++;
p += 2 * (dy - dx);
}
setpixel(x, y);
}
}
که می تونی اینجوری تو رویداد کلیک یه باتن فراخوانیش کنی:
B_H(20, 50, 100, 50);
majid_i68
سه شنبه 07 آبان 1392, 02:08 صبح
void pint(int strtX, int strtY,int endX,int endY) {
//تولید خط راست
Graphics gb = CreateGraphics();
Pen ppp = new Pen(Color.Blue,3);
Point p11 = new Point(strtX, strtY);
Point p22 = new Point(endX, endY);
gb.DrawLine(ppp, p11, p22);//دستور کشیدن خط
// تولید مثلث
Graphics gg = CreateGraphics();
Pen pp = new Pen(Color.Red, 3);
Point[] po = new Point[3];//تعداد ضلعها
po[0] = new Point(endX, endY);
po[1] = new Point(endX, endY-3);
po[2] = new Point(endX-3, endY);
gg.DrawPolygon(pp, po);//دستور کشیدن چند ضلعی
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
pint(10, 10, 60, 60);//تابع pint را با اعداد داده شده اجرا میکند
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.