Vẽ lưới thẳng, chéo

Yêu cầu: đã cài đặt và cấu hình đồ họa trong code::blocks 10.05. Xem tại đây

Đây là 2 bài tập giúp các bạn hiểu rõ hàm line, và cách tính toán các tọa độ trên màn hình đồ họa. Nếu làm bạn và hiểu hết được bài tập này, có nghĩa là bạn đã nắm vững vòng lặp for và cách tính toán tọa độ trên màn hình đồ họa trong C



Hình 1


Hình 2

Code hình 1:

#include <stdio.h>
#include <graphics.h>
#define DTime 300
int main(){
initwindow(800,600);
int
maxX = getmaxx();
int
maxY = getmaxy();
int
xA = maxX/2, yA = 0;
int
xB = maxX/2, yB = maxY;
int
xC = 0, yC = maxY/2;
int
xD = maxX, yD = maxY/2;
delay(DTime);
line(xA,yA,xB,yB);
delay(DTime);
line(xC,yC,xD,yD);
delay(DTime);
line(xA,yA,xC,yC);
delay(DTime);
line(xA,yA,xD,yD);
delay(DTime);
line(xC,yC,xB,yB);
delay(DTime);
line(xB,yB,xD,yD);

int
xE = maxX/4,yE = maxY/4;
int
xF = maxX*3/4, yF = maxY/4;
int
xG = maxX/4, yG = maxY*3/4;
int
xH = maxX*3/4, yH = maxY*3/4;
delay(DTime);
line(xE,yE,xF,yF);
delay(DTime);
line(xF,yF,xH,yH);
delay(DTime);
line(xH,yH,xG,yG);
delay(DTime);

line(xG,yG,xE,yE);
delay(DTime);
line(xE,yE,xH,yH);
delay(DTime);
line(xF,yF,xG,yG);

int
xI = maxX/2,yI = maxY/4;
int
xJ = maxX/4,yJ = maxY/2;
int
xK = maxX/2, yK =maxY*3/4;
int
xL = maxX*3/4, yL = maxY/2;
delay(DTime);
line(xI,yI,xJ,yJ);
delay(DTime);
line(xJ,yJ,xK,yK);
delay(DTime);
line(xK,yK,xL,yL);
delay(DTime);
line(xL,yL,xI,yI);
getch();
return
0;
}


Code hình 2:

#include <stdio.h>
#include <graphics.h>
#define DTime 200
int main(){
initwindow(600,600);
int
maxX = getmaxx()+1, maxY = getmaxy()+1;
setlinestyle(0,0,3);
int
t = 10;
for
(int i=0 ;i < t; i++){
delay(DTime);
setcolor(i+1);
line(0,maxY/t* i ,maxX,maxY/t* i );
}

for
(int i=0 ;i < t; i++){
delay(DTime);
setcolor(i+1);
line(maxX/t*i ,0 , maxX/t*i ,maxY );
}

for
(int i=0;i<t;i++){
delay(DTime);
setcolor(i+1);
line(0,maxY/t*i, maxX/t*(t-i),maxY);

}

for
(int i=1;i<t;i++){
delay(DTime);
setcolor(i+1);
line(maxX/t*i,0,maxX,maxY/t*(t-i));
}

for
(int i=1;i<=t;i++){
delay(DTime);
setcolor(i+1);
line(maxX*i/t,0,0,maxY*i/t);
}

for
(int i=1;i<t;i++){
delay(DTime);
setcolor(i+1);
line(maxX,maxY*i/t,maxX*i/t,maxY);
}

int
xc = maxX/2, yc = maxY/2;
setcolor(YELLOW);
int
R = maxX/2;
for
(int i=0;i<=4;i++){
delay(DTime);
setcolor(i+1);
circle(xc,yc,R-maxX/t*i);
}

getch();
return
0;
}

Bài liên quan

Bài liên quan