Guest User

Untitled

a guest
Dec 12th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Threading;
  10.  
  11. namespace WindowsFormsApplication3
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         void one()
  21.         {
  22.             Graphics g = this.CreateGraphics();
  23.             int krlx,krly;
  24.             int dlx=200;  //размер трол.
  25.             int dly=100;
  26.             krlx= 60;
  27.             krly=20;
  28.  
  29.            
  30.  
  31.             Point[] usiki =
  32.              {
  33.                  new Point(krlx,krly),
  34.                  new Point(krlx+dlx/2,krly+30),
  35.                  new Point(krlx+dlx, krly),
  36.              };
  37.  
  38.            
  39.  
  40.             Point[] okna =
  41.              {
  42.                   new Point(krlx+20,krly+dly),
  43.                  new Point(krlx+dlx,krly+dly),
  44.                  new Point(krlx+dlx, krly+40),
  45.                  new Point(krlx+20, krly+40),
  46.              };
  47.  
  48.             Point[] kuzov =
  49.              {
  50.                  new Point(krlx,krly+30),
  51.                  new Point(krlx+dlx,krly+30),
  52.                  new Point(krlx+dlx, krly+30+dly),
  53.                  new Point(krlx, krly+30+dly),
  54.              };
  55.            
  56.             bool vector, vector1, vector2;
  57.             vector = vector1 = vector2 = false;
  58.             int i = 400;
  59.             int max, min;
  60.             max = 450; min = 350;
  61.             int step = 2;
  62.             int sleep = 1;
  63.  
  64.             Point[] k = { new Point(0 + 400, 0 + i), new Point(30 + 400, 0 + i), new Point(15 + 400, 0 + i), new Point(15 + 400, 30 + i), };
  65.  
  66.             Point[] a = { new Point(40 + 400, 30 + i), new Point(70 + 400, 30 + i), new Point(60 + 400, 30 + i), new Point(60 + 400, 0 + i), new Point(50 + 400, 0 + i), new Point(50 + 400, 30 + i), };
  67.  
  68.             Point[] r = { new Point(85 + 400, 30 + i), new Point(85 + 400, 0 + i), new Point(100 + 400, 0 + i), new Point(100 + 400, 15 + i), new Point(85 + 400, 15 + i), };
  69.  
  70.            
  71.  
  72.             Pen p = new Pen(Color.DarkOrange, 5);
  73.             Pen p1 = new Pen(Color.Green, 5);
  74.             Pen p2 = new Pen(Color.Blue, 5);
  75.             Pen p3 = new Pen(Color.Red, 5);
  76.             Pen cl = new Pen(Color.White, 5);
  77.             Pen c2 = new Pen(Color.Black, 2);
  78.             int step1=20;
  79.             SolidBrush myBrushBl = new SolidBrush(Color.Blue);
  80.             SolidBrush myBrushBlck = new SolidBrush(Color.Black);
  81.             SolidBrush myBrushok = new SolidBrush(Color.Aqua);
  82.             SolidBrush lastik = new SolidBrush(Color.White);
  83.            int g1=0;
  84.            
  85.  
  86.  
  87.             for (int j = 0; j < 600; j++)
  88.             {
  89.  
  90.                 Thread.Sleep(20);
  91.                 g.DrawLines(cl, kuzov);
  92.                 g.FillPolygon(lastik, kuzov);
  93.                 g.DrawLines(cl, usiki);
  94.                 g.DrawEllipse(cl, krlx + 20+g1*step1, krly + dly + 10, 50, 50);
  95.                 g.FillEllipse(lastik, krlx + 20+g1*step1, krly + dly + 10, 50, 50);
  96.                 g.DrawEllipse(cl, krlx + 20 + dlx / 2 + g1 * step1, krly + dly + 10, 50, 50);
  97.                 g.FillEllipse(lastik, krlx + 20 + dlx / 2 + g1 * step1, krly + dly + 10, 50, 50);
  98.                 g.DrawLines(cl, okna);
  99.                 g.FillPolygon(lastik, okna);
  100.  
  101.  
  102.                 g1++;
  103.                 if (step1 * g1 < dlx + krlx+100)
  104.                 {
  105.                     kuzov[0].X +=  step1;
  106.                     kuzov[1].X +=  step1;
  107.                     kuzov[2].X +=  step1;
  108.                     kuzov[3].X +=  step1;
  109.  
  110.                     okna[0].X += step1;
  111.                     okna[1].X += step1;
  112.                     okna[2].X += step1;
  113.                     okna[3].X += step1;
  114.  
  115.                     usiki[0].X += step1;
  116.                     usiki[1].X += step1;
  117.                     usiki[2].X += step1;
  118.                    
  119.  
  120.  
  121.                     Thread.Sleep(20);
  122.                     g.DrawLines(p, kuzov);
  123.                     g.FillPolygon(myBrushBl, kuzov);
  124.                     g.DrawLines(c2, usiki);
  125.                     g.DrawEllipse(cl, krlx + 20 + g1*step1, krly + dly + 10, 50, 50);
  126.                     g.FillEllipse(myBrushBlck, krlx + 20 + g1*step1, krly + dly + 10, 50, 50);
  127.                     g.DrawEllipse(cl, krlx + 20 + dlx / 2 + g1*step1, krly + dly + 10, 50, 50);
  128.                     g.FillEllipse(myBrushBlck, krlx + 20 + dlx / 2+g1*step1, krly + dly + 10, 50, 50);
  129.                     g.DrawLines(p, okna);
  130.                     g.FillPolygon(myBrushok, okna);
  131.                 }
  132.                 else
  133.                 {
  134.                     kuzov[0].X -= (g1-1) * step1;
  135.                     kuzov[1].X -= (g1-1) * step1;
  136.                     kuzov[2].X -= (g1-1) * step1;
  137.                     kuzov[3].X -= (g1-1) * step1;
  138.  
  139.                     okna[0].X -= (g1-1)*step1;
  140.                     okna[1].X -= (g1-1)*step1;
  141.                     okna[2].X -= (g1-1)*step1;
  142.                     okna[3].X -= (g1-1)*step1;
  143.  
  144.                     usiki[0].X -= (g1-1)*step1;
  145.                     usiki[1].X -= (g1-1)*step1;
  146.                     usiki[2].X -= (g1-1)*step1;
  147.  
  148.                     g1 = 0;
  149.                 }
  150.                 g.DrawLine(c2, krlx - 10, krly, krlx + 2 * dlx, krly);
  151.                 g.DrawLine(c2, krlx - 10, krly + dly + 60, krlx + 2 * dlx, krly + dly + 60);
  152.             }
  153.            
  154.      
  155.            
  156.            
  157.            
  158.  
  159.             for (long ii = 0; ii< 200 ; ii++)
  160.             {
  161.                 Thread.Sleep(sleep);
  162.                 if (ii % 4 == 0)
  163.                 {
  164.                     if (k[0].Y == min)
  165.                     {
  166.                         vector = true;
  167.                     }
  168.                     if (k[3].Y == max)
  169.                     {
  170.                         vector = false;
  171.                     }
  172.                     g.DrawLines(cl, k);
  173.                     if (vector)
  174.                     {
  175.                         k[0].Y += step; k[1].Y += step; k[2].Y += step; k[3].Y += step;
  176.                     }
  177.                     else
  178.                     {
  179.                         k[0].Y -= step; k[1].Y -= step; k[2].Y -= step; k[3].Y -= step;
  180.                     }
  181.                     g.DrawLines(p3, k);
  182.                 }
  183.  
  184.                 if (ii % 3 == 0)
  185.                 {
  186.                     if (a[4].Y == min)
  187.                     {
  188.                         vector1 = true;
  189.                     }
  190.                     if (a[0].Y == max)
  191.                     {
  192.                         vector1 = false;
  193.                     }
  194.                     g.DrawLines(cl, a);
  195.                     if (vector1)
  196.                     {
  197.                         a[0].Y += step; a[1].Y += step; a[2].Y += step; a[3].Y += step; a[4].Y += step; a[5].Y += step;
  198.                     }
  199.                     else
  200.                     {
  201.                         a[0].Y -= step; a[1].Y -= step; a[2].Y -= step; a[3].Y -= step; a[4].Y -= step; a[5].Y -= step;
  202.                     }
  203.                     g.DrawLines(p2, a);
  204.                 }
  205.  
  206.                 if (ii % 5 == 0)
  207.                 {
  208.                     if (r[1].Y == min)
  209.                     {
  210.                         vector2 = true;
  211.                     }
  212.                     if (r[0].Y == max)
  213.                     {
  214.                         vector2 = false;
  215.                     }
  216.                     g.DrawLines(cl, r);
  217.                     if (vector2)
  218.                     {
  219.                         r[0].Y += step; r[1].Y += step; r[2].Y += step; r[3].Y += step; r[4].Y += step;
  220.                     }
  221.                     else
  222.                     {
  223.                         r[0].Y -= step; r[1].Y -= step; r[2].Y -= step; r[3].Y -= step; r[4].Y -= step;
  224.                     }
  225.                     g.DrawLines(p1, r);
  226.                 }
  227.             }
  228.         }
  229.  
  230.         private void button1_Click(object sender, EventArgs e)
  231.         {
  232.             Thread a = new Thread(one);
  233.             a.Start();
  234.         }
  235.  
  236.         private void Form1_Load(object sender, EventArgs e)
  237.         {
  238.  
  239.         }
  240.     }
  241. }
Add Comment
Please, Sign In to add comment