Đâ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;
}
0 nhận xét:
Đăng nhận xét