[ C\C++ ] Thuật toán DDA_Line - Vẽ đoạn thẳng [ Kỹ thuật Đồ họa máy tính ]

* Thuật toán DDA_Line - Vẽ đoạn thẳng (xét 0<=k<=1)


* Cài đặt thuật toán: 
   Ứng dụng DDA_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);
}

// DDA Line
void DDA_Line(int x1,int y1, int x2, int y2, int color){
  int x=x1;
  float y=y1,m=(float)(y2-y1)/(x2-x1);
  putpixel(x1,y1,color);

  for(x=x1;x<=x2;x++)
  {
      y=y+m;
      putpixel(Round(x),y,color);
  }
}

// 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);
 DDA_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

* Tải code về TẠI ĐÂY - Lưu ý: Sau 5s, click BỎ QUA QUẢNG CÁO