Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <graphics.h>
- #include <conio.h>
- #include <stdio.h>
- int main(void) {
- int GrDr, GrMod, rez;
- GrDr=DETECT;
- initgraph(&GrDr,&GrMod," ") ;
- rez=graphresult() ;
- if(rez != grOk)
- {
- printf("\n Error graph mode");
- return(1);
- }
- int BeginPoint_x = 0, BeginPoint_y = 0;
- int EndPoint_x = 639, EndPoint_y = 480 / 3 * 2;
- // Sky drawing
- setfillstyle(1, LIGHTBLUE);
- bar(BeginPoint_x, BeginPoint_y, EndPoint_x, EndPoint_y);
- // Land drawing
- setfillstyle(1, GREEN);
- bar(0, EndPoint_y, 639, 479);
- // sun drawing
- setcolor(YELLOW);
- circle(70, 70, 30);
- setfillstyle(1, YELLOW);
- floodfill(70, 70, YELLOW);
- // Fence drawing
- setcolor(BROWN);
- setfillstyle(1, BROWN);
- int cur_x = 0;
- for (int i = 0; i < 20; i++) {
- bar(cur_x, EndPoint_y - 100, cur_x + 32, EndPoint_y);
- line(cur_x, EndPoint_y - 100, cur_x + 16, EndPoint_y - 120);
- line(cur_x + 16, EndPoint_y - 120, cur_x + 32, EndPoint_y - 100);
- floodfill(cur_x + 16, EndPoint_y - 119, BROWN);
- cur_x += 32;
- }
- // house drawing
- setfillstyle(1, BLUE);
- bar(256, EndPoint_y - 120, 384, EndPoint_y);
- // roof of the house
- setcolor(LIGHTGRAY);
- setfillstyle(1, LIGHTGRAY);
- line(251, EndPoint_y - 120, 320, EndPoint_y - 180);
- line(320, EndPoint_y - 180, 389, EndPoint_y - 120);
- line(251, EndPoint_y - 120, 389, EndPoint_y - 120);
- floodfill(320, EndPoint_y - 179, LIGHTGRAY);
- // house window
- setfillstyle(1, YELLOW);
- bar(288, EndPoint_y - 90, 352, EndPoint_y - 30);
- // windows lines
- setcolor(BROWN);
- line(288, EndPoint_y - 90, 352, EndPoint_y - 90);
- line(352, EndPoint_y - 90, 352, EndPoint_y - 30);
- line(352, EndPoint_y - 30, 288, EndPoint_y - 30);
- line(288, EndPoint_y - 30, 288, EndPoint_y - 90);
- line(320, EndPoint_y - 30, 320, EndPoint_y - 90);
- line(288, EndPoint_y - 60, 352, EndPoint_y - 60);
- // Tree
- setfillstyle(1, BROWN);
- bar(535, 100, 565, EndPoint_y);
- setcolor(GREEN);
- setfillstyle(1, GREEN);
- circle(550, 100, 40);
- floodfill(550, 100, GREEN);
- circle(520, 130, 40);
- floodfill(520, 150, GREEN);
- circle(580, 130, 40);
- floodfill(580, 130, GREEN);
- // Fence line drawing
- setcolor(BLACK);
- cur_x = 0;
- for (int i = 0; i < 20; i++) {
- if (i < 8 || i >= 12) {
- line(cur_x, EndPoint_y - 100, cur_x + 32, EndPoint_y - 100);
- line(cur_x, EndPoint_y - 100, cur_x, EndPoint_y);
- line(cur_x + 32, EndPoint_y, cur_x, EndPoint_y);
- line(cur_x + 32, EndPoint_y, cur_x + 32, EndPoint_y - 100);
- line(cur_x, EndPoint_y - 100, cur_x + 16, EndPoint_y - 120);
- line(cur_x + 16, EndPoint_y - 120, cur_x + 32, EndPoint_y - 100);
- }
- cur_x += 32;
- }
- // Christmas tree
- setcolor(BLACK);
- int triangle_x1 = 496, triangle_y1 = EndPoint_y - 80;
- int triangle_x2 = 446, triangle_y2 = EndPoint_y - 30;
- int triangle_x3 = 546, triangle_y3 = EndPoint_y - 30;
- line(triangle_x1, triangle_y1, triangle_x2, triangle_y2);
- line(triangle_x1, triangle_y1, triangle_x3, triangle_y3);
- line(triangle_x3, triangle_y3, triangle_x2, triangle_y2);
- int triangle2_x1 = 496, triangle2_y1 = EndPoint_y - 45;
- int triangle2_x2 = 446, triangle2_y2 = EndPoint_y + 10;
- int triangle2_x3 = 546, triangle2_y3 = EndPoint_y + 10;
- line(triangle2_x1, triangle2_y1, triangle2_x2, triangle2_y2);
- line(triangle2_x1, triangle2_y1, triangle2_x3, triangle2_y3);
- line(triangle2_x3, triangle2_y3, triangle2_x2, triangle2_y2);
- setfillstyle(1, GREEN);
- for (int x = 0; x < 640; x++) {
- for (int y = 0; y < 480; y++) {
- int value1 = (triangle_x1 - x) * (triangle_y2 - triangle_y1) - (triangle_x2 - triangle_x1) * (triangle_y1 - y);
- int value2 = (triangle_x2 - x) * (triangle_y3 - triangle_y2) - (triangle_x3 - triangle_x2) * (triangle_y2 - y);
- int value3 = (triangle_x3 - x) * (triangle_y1 - triangle_y3) - (triangle_x1 - triangle_x3) * (triangle_y3 - y);
- if ((value1 > 0 && value2 > 0 && value3 > 0) || value1 < 0 && value2 < 0 && value3 < 0) {
- bar(x, y, x + 1, y + 1);
- }
- value1 = (triangle2_x1 - x) * (triangle2_y2 - triangle2_y1) - (triangle2_x2 - triangle2_x1) * (triangle2_y1 - y);
- value2 = (triangle2_x2 - x) * (triangle2_y3 - triangle2_y2) - (triangle2_x3 - triangle2_x2) * (triangle2_y2 - y);
- value3 = (triangle2_x3 - x) * (triangle2_y1 - triangle2_y3) - (triangle2_x1 - triangle2_x3) * (triangle2_y3 - y);
- if ((value1 > 0 && value2 > 0 && value3 > 0) || value1 < 0 && value2 < 0 && value3 < 0) {
- bar(x, y, x + 1, y + 1);
- }
- }
- }
- setfillstyle(1, BROWN);
- bar(480, EndPoint_y + 10, 512, EndPoint_y + 50);
- setcolor(BLACK);
- line(480, EndPoint_y + 50, 512, EndPoint_y + 50);
- line(480, EndPoint_y + 10, 480, EndPoint_y + 50);
- line(512, EndPoint_y + 10, 512, EndPoint_y + 50);
- //Output text
- setcolor(WHITE);
- settextstyle(1, 0, 2);
- outtextxy(280, 430, "Author: Mirbek Bakirov");
- getch();
- closegraph();
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement