-Azure-
یک شنبه 12 دی 1389, 23:45 عصر
با سلام به همه دوستان
من برای رسم اشکال گرافیکی از یک سری الگوریتم های پایه گرافیکی استفاده می کنم مثلا برای رسم خط از الگوریتم DDA و برزنهام ,...
مثلا برای رسم خط از الگوریتم خط DDA به صورت زیر استفاده می کنم
Bitmap myBitmap = new Bitmap(500, 500);
private void lineDDA(int x0, int y0, int xEnd, int yEnd)
{
int dx = xEnd - x0, dy = yEnd - y0, steps, k;
float xIncrement, yIncrement, x = x0, y = y0;
if (Math.Abs(dx) > Math.Abs(dy))
steps = Math.Abs(dx) ;
else
steps = Math.Abs(dy);
xIncrement = (float)dx / (float)steps;
yIncrement = (float)dy / (float)steps;
myBitmap.SetPixel((int)Math.Round(x), (int)Math.Round(y), Color.Black);
for (k = 0; k < steps; k++)
{
x += xIncrement;
y += yIncrement;
myBitmap.SetPixel((int)Math.Round(x), (int)Math.Round(y), Color.Black);
}
this.Invalidate();
}
مشکلم اینکه می خوام این اشکال ر به سمت دلخواه منتقل کنم یا اصطلاحا درگ کنم
میشه راهنمایی ام کنید
من برای رسم اشکال گرافیکی از یک سری الگوریتم های پایه گرافیکی استفاده می کنم مثلا برای رسم خط از الگوریتم DDA و برزنهام ,...
مثلا برای رسم خط از الگوریتم خط DDA به صورت زیر استفاده می کنم
Bitmap myBitmap = new Bitmap(500, 500);
private void lineDDA(int x0, int y0, int xEnd, int yEnd)
{
int dx = xEnd - x0, dy = yEnd - y0, steps, k;
float xIncrement, yIncrement, x = x0, y = y0;
if (Math.Abs(dx) > Math.Abs(dy))
steps = Math.Abs(dx) ;
else
steps = Math.Abs(dy);
xIncrement = (float)dx / (float)steps;
yIncrement = (float)dy / (float)steps;
myBitmap.SetPixel((int)Math.Round(x), (int)Math.Round(y), Color.Black);
for (k = 0; k < steps; k++)
{
x += xIncrement;
y += yIncrement;
myBitmap.SetPixel((int)Math.Round(x), (int)Math.Round(y), Color.Black);
}
this.Invalidate();
}
مشکلم اینکه می خوام این اشکال ر به سمت دلخواه منتقل کنم یا اصطلاحا درگ کنم
میشه راهنمایی ام کنید