Viết chương trình nhập toạ độ 2 điểm A và B, vẽ đường thẳng đi qua A và B. [Ai không biết làm vui lòng bỏ qua bài này ạ. Tốn điểm lắm 😓😓😓]
1 câu trả lời
#include <iostream>
#include <graphic.h>
#include <math.h>
#define Round(a) (int)(a+0.5)
#define max(a,b) (a>b)?a:b
#define DELAY 10
#include <conio.h>
using namespace std ;
int color = WHITE;
void lineDDA(int x1, int y1, int x2, int y2){ /// đây là hàm vẽ,x1,y1 là tọa độ của 2 điểm
int Dx = x2 - x1, Dy = y2 - y1; /// thuật toán DDA
float x_inc , y_inc;
float step=max(abs(Dx),abs(Dy));
x_inc=Dx/step;
y_inc=Dy/step;
float x=x1, y=y1;
putpixel(x, y, color);
int k=1;
while(k <=step){
k++;
delay(DELAY);
x += x_inc;
y += y_inc;
cout<<"x="<<x<<"\ty="<<y<<endl;
putpixel(Round(x),Round(y),color);
}
}
int main(){
int gd,gm;
gd=DETECT;
initgraph(&gd,&gm,NULL); /// khởi tạo
setcolor(5);
settextstyle(5,0,4);
int a1,b1,a2,b2;
cin >> a1 >> b1 >> a2 >> b2; /// nhập tọa độ
lineDDA(a1,b1,a2,b2);
return 0;
}