28 lines
912 B
C#
28 lines
912 B
C#
using System;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
static class Program
|
|
{
|
|
static void Main()
|
|
{
|
|
new Bitmap(200, 200)
|
|
.DrawLine(0, 0, 199, 199, Color.Black).DrawLine(199,0,0,199,Color.Black)
|
|
.DrawLine(50, 75, 150, 125, Color.Blue).DrawLine(150, 75, 50, 125, Color.Blue)
|
|
.Save("line.png", ImageFormat.Png);
|
|
}
|
|
static Bitmap DrawLine(this Bitmap bitmap, int x0, int y0, int x1, int y1, Color color)
|
|
{
|
|
int dx = Math.Abs(x1 - x0), sx = x0 < x1 ? 1 : -1;
|
|
int dy = Math.Abs(y1 - y0), sy = y0 < y1 ? 1 : -1;
|
|
int err = (dx > dy ? dx : -dy) / 2, e2;
|
|
for(;;) {
|
|
bitmap.SetPixel(x0, y0, color);
|
|
if (x0 == x1 && y0 == y1) break;
|
|
e2 = err;
|
|
if (e2 > -dx) { err -= dy; x0 += sx; }
|
|
if (e2 < dy) { err += dx; y0 += sy; }
|
|
}
|
|
return bitmap;
|
|
}
|
|
}
|