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;
}

Câu hỏi trong lớp Xem thêm