Advertisement
Mirbek

ДЗ

Feb 8th, 2022
1,082
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.28 KB | None | 0 0
  1. #include <graphics.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. int main(void) {
  6.     int GrDr, GrMod, rez;
  7.     GrDr=DETECT;
  8.  
  9.     initgraph(&GrDr,&GrMod," ") ;
  10.  
  11.     rez=graphresult() ;
  12.  
  13.     if(rez != grOk)
  14.     {
  15.         printf("\n Error graph mode");
  16.         return(1);
  17.     }
  18.  
  19.     int BeginPoint_x = 0, BeginPoint_y = 0;
  20.     int EndPoint_x = 639, EndPoint_y = 480 / 3 * 2;
  21.  
  22.     // Sky drawing
  23.     setfillstyle(1, LIGHTBLUE);
  24.     bar(BeginPoint_x, BeginPoint_y, EndPoint_x, EndPoint_y);
  25.  
  26.     // Land drawing
  27.     setfillstyle(1, GREEN);
  28.     bar(0, EndPoint_y, 639, 479);
  29.  
  30.     // sun drawing
  31.     setcolor(YELLOW);
  32.     circle(70, 70, 30);
  33.     setfillstyle(1, YELLOW);
  34.     floodfill(70, 70, YELLOW);
  35.  
  36.     // Fence drawing
  37.     setcolor(BROWN);
  38.     setfillstyle(1, BROWN);
  39.  
  40.     int cur_x = 0;
  41.     for (int i = 0; i < 20; i++) {
  42.         bar(cur_x, EndPoint_y - 100, cur_x + 32, EndPoint_y);
  43.         line(cur_x, EndPoint_y - 100, cur_x + 16, EndPoint_y - 120);
  44.         line(cur_x + 16, EndPoint_y - 120, cur_x + 32, EndPoint_y - 100);
  45.         floodfill(cur_x + 16, EndPoint_y - 119, BROWN);
  46.         cur_x += 32;
  47.     }
  48.  
  49.     // house drawing
  50.     setfillstyle(1, BLUE);
  51.     bar(256, EndPoint_y - 120, 384, EndPoint_y);
  52.     // roof of the house
  53.     setcolor(LIGHTGRAY);
  54.     setfillstyle(1, LIGHTGRAY);
  55.     line(251, EndPoint_y - 120, 320, EndPoint_y - 180);
  56.     line(320, EndPoint_y - 180, 389, EndPoint_y - 120);
  57.     line(251, EndPoint_y - 120, 389, EndPoint_y - 120);
  58.     floodfill(320, EndPoint_y - 179, LIGHTGRAY);
  59.     // house window
  60.     setfillstyle(1, YELLOW);
  61.     bar(288, EndPoint_y - 90, 352, EndPoint_y - 30);
  62.     // windows lines
  63.     setcolor(BROWN);
  64.     line(288, EndPoint_y - 90, 352, EndPoint_y - 90);
  65.     line(352, EndPoint_y - 90, 352, EndPoint_y - 30);
  66.     line(352, EndPoint_y - 30, 288, EndPoint_y - 30);
  67.     line(288, EndPoint_y - 30, 288, EndPoint_y - 90);
  68.     line(320, EndPoint_y - 30, 320, EndPoint_y - 90);
  69.     line(288, EndPoint_y - 60, 352, EndPoint_y - 60);
  70.  
  71.     // Tree
  72.     setfillstyle(1, BROWN);
  73.     bar(535, 100, 565, EndPoint_y);
  74.     setcolor(GREEN);
  75.     setfillstyle(1, GREEN);
  76.     circle(550, 100, 40);
  77.     floodfill(550, 100, GREEN);
  78.     circle(520, 130, 40);
  79.     floodfill(520, 150, GREEN);
  80.     circle(580, 130, 40);
  81.     floodfill(580, 130, GREEN);
  82.  
  83.     // Fence line drawing
  84.     setcolor(BLACK);
  85.     cur_x = 0;
  86.     for (int i = 0; i < 20; i++) {
  87.         if (i < 8 || i >= 12) {
  88.             line(cur_x, EndPoint_y - 100, cur_x + 32, EndPoint_y - 100);
  89.             line(cur_x, EndPoint_y - 100, cur_x, EndPoint_y);
  90.             line(cur_x + 32, EndPoint_y, cur_x, EndPoint_y);
  91.             line(cur_x + 32, EndPoint_y, cur_x + 32, EndPoint_y - 100);
  92.             line(cur_x, EndPoint_y - 100, cur_x + 16, EndPoint_y - 120);
  93.             line(cur_x + 16, EndPoint_y - 120, cur_x + 32, EndPoint_y - 100);
  94.         }
  95.         cur_x += 32;
  96.     }
  97.  
  98.     // Christmas tree
  99.     setcolor(BLACK);
  100.     int triangle_x1 = 496, triangle_y1 = EndPoint_y - 80;
  101.     int triangle_x2 = 446, triangle_y2 = EndPoint_y - 30;
  102.     int triangle_x3 = 546, triangle_y3 = EndPoint_y - 30;
  103.     line(triangle_x1, triangle_y1, triangle_x2, triangle_y2);
  104.     line(triangle_x1, triangle_y1, triangle_x3, triangle_y3);
  105.     line(triangle_x3, triangle_y3, triangle_x2, triangle_y2);
  106.  
  107.     int triangle2_x1 = 496, triangle2_y1 = EndPoint_y - 45;
  108.     int triangle2_x2 = 446, triangle2_y2 = EndPoint_y + 10;
  109.     int triangle2_x3 = 546, triangle2_y3 = EndPoint_y + 10;
  110.     line(triangle2_x1, triangle2_y1, triangle2_x2, triangle2_y2);
  111.     line(triangle2_x1, triangle2_y1, triangle2_x3, triangle2_y3);
  112.     line(triangle2_x3, triangle2_y3, triangle2_x2, triangle2_y2);
  113.  
  114.     setfillstyle(1, GREEN);
  115.     for (int x = 0; x < 640; x++) {
  116.         for (int y = 0; y < 480; y++) {
  117.             int value1 = (triangle_x1 - x) * (triangle_y2 - triangle_y1) - (triangle_x2 - triangle_x1) * (triangle_y1 - y);
  118.             int value2 = (triangle_x2 - x) * (triangle_y3 - triangle_y2) - (triangle_x3 - triangle_x2) * (triangle_y2 - y);
  119.             int value3 = (triangle_x3 - x) * (triangle_y1 - triangle_y3) - (triangle_x1 - triangle_x3) * (triangle_y3 - y);
  120.             if ((value1 > 0 && value2 > 0 && value3 > 0) || value1 < 0 && value2 < 0 && value3 < 0) {
  121.                 bar(x, y, x + 1, y + 1);
  122.             }
  123.  
  124.             value1 = (triangle2_x1 - x) * (triangle2_y2 - triangle2_y1) - (triangle2_x2 - triangle2_x1) * (triangle2_y1 - y);
  125.             value2 = (triangle2_x2 - x) * (triangle2_y3 - triangle2_y2) - (triangle2_x3 - triangle2_x2) * (triangle2_y2 - y);
  126.             value3 = (triangle2_x3 - x) * (triangle2_y1 - triangle2_y3) - (triangle2_x1 - triangle2_x3) * (triangle2_y3 - y);
  127.             if ((value1 > 0 && value2 > 0 && value3 > 0) || value1 < 0 && value2 < 0 && value3 < 0) {
  128.                 bar(x, y, x + 1, y + 1);
  129.             }
  130.         }
  131.     }
  132.  
  133.     setfillstyle(1, BROWN);
  134.     bar(480, EndPoint_y + 10, 512, EndPoint_y + 50);
  135.     setcolor(BLACK);
  136.     line(480, EndPoint_y + 50, 512, EndPoint_y + 50);
  137.     line(480, EndPoint_y + 10, 480, EndPoint_y + 50);
  138.     line(512, EndPoint_y + 10, 512, EndPoint_y + 50);
  139.  
  140.     //Output text
  141.     setcolor(WHITE);
  142.     settextstyle(1, 0, 2);
  143.     outtextxy(280, 430, "Author: Mirbek Bakirov");
  144.  
  145.     getch();
  146.     closegraph();
  147.     return (0);
  148. }
  149.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement