رسم خط توسط الگوریتم برزنهام

abodan0631

New Member
سلام خدمت دوستان عزیز
سوالم اینه که ما میخوایم 4 تا تکست باکس و 1 دونه bottom ایجاد کنیم تو قسمت گرافیک #c و این 4 تا مختصات خط رو بصورت x1 ,x2 ,y1 ,y2 بگیره و توسط فرمولهای الگوریتم برزنهام خطمونو رسم کنیم.
ممنون
 

the_king

مدیرکل انجمن
سلام خدمت دوستان عزیز
سوالم اینه که ما میخوایم 4 تا تکست باکس و 1 دونه bottom ایجاد کنیم تو قسمت گرافیک #c و این 4 تا مختصات خط رو بصورت x1 ,x2 ,y1 ,y2 بگیره و توسط فرمولهای الگوریتم برزنهام خطمونو رسم کنیم.
ممنون

توجه داشته باشید که 0 محور y در گرافیک کامپیوتری در بالای کادر قرار دارد و از بالا به سمت پایین افزایش می یابد :
کد:
        private void button1_Click(object sender, EventArgs e)
        {
            Bitmap bmp = new Bitmap(Width, Height);
            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.Clear(BackColor);
            }
            int x0 = int.Parse(textBox1.Text);
            int y0 = int.Parse(textBox2.Text);
            int x1 = int.Parse(textBox3.Text);
            int y1 = int.Parse(textBox4.Text);
            float deltaX = x1 - x0;
            float deltaY = y1 - y0;
            float error = 0;
            int y = y0;
            float deltaError;
            if (deltaX == 0)
            {
                for (y = y0; y <= y1; y++)
                {
                    bmp.SetPixel(x0, y, Color.Blue);
                }
            }
            else
            {
                deltaError = Math.Abs(deltaY / deltaX);
                for (int x = x0; x <= x1; x++)
                {
                    bmp.SetPixel(x, y, Color.Blue);
                    error += deltaError;
                    if (error >= 0.5)
                    {
                        y += 1;
                        error -= 1;
                    }
                }
            }
            BackgroundImage = bmp;
        }

به مثال پیوستی مراجعه شود.
مشاهده پیوست DrawLineBresenham.zip
 

جدیدترین ارسال ها

بالا