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-1404, Jelsoft Enterprises Ltd.