* Cài đặt thuật toán:
Ứng dụng MidPoint_Line để vẽ đoạn thằng AB với A(100,100); B(300,200)
[Code Turbo C++]
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
// ham lam tron
int Round(float a){
return (int)floor(a+0.5);
}
// MidPoint_Line
void Mid_Line(int x1, int y1, int x2, int y2, int c)
{
int x, y, dx, dy,d;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
d= dy - dx/2;
for (x=x1; x<=x2; x++)
{
putpixel(x, y, c);
if (d <= 0)
d = d + dy;
else
{
y ++;
d = d + dy - dx;
}
}
}
// ham main
void main(){
clrscr();
int driver=DETECT, mode;
initgraph(&driver,&mode,"C:\\TC\\BGI"); /* Ban co the thay doi Path tuy vao may cua ban */
cout<<"\n Ve duong thang:\n";
gotoxy(100,100);
Mid_Line(100,100,300,200,4);
getch();
}
// đề nghị độc giả giải quyết tiếp các trường hợp khác của k