#include <stdlib.h>
#include <stdio.h>
//extern int plot(int x, int y);
int plot(int x, int y, int color)
{
printf("plot(%d, %d, %d)\n", x, y, color);
}
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
printf("swap %d with %d\n", a, b);
}
int line(int x1, int y1, int x2, int y2, int color)
{
int steep;
int deltax, deltay;
int e, x, y, y_step;
steep = (abs(y2 - y1) > (x2 - x1));
if (steep) {
swap(&x1, &y1);
swap(&x2, &y2);
}
if (x1 > x2) {
swap(&x1, &x2);
swap(&y1, &y2);
}
deltax = x2 - x1;
deltay = abs(y2 - y1);
e = x1;
y = y1;
if (y1 < y2) {
y_step = 1;
} else
y_step = -1;
for (x = x1; x <= x2; x++) {
if (steep)
plot(y, x, color);
else
plot(x, y, color);
e += deltay;
if (2 * e >= deltax) {
y += y_step;
e -= deltax;
}
}
return 0;
}
int main()
{
int x1, x2, y1, y2, color;
x1 = 0;
y1 = 0;
x2 = 50;
y2 = 65;
color = 1;
line(x1, y1, x2, y2, color);
}
~
~
No comments:
Post a Comment