Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 13.46 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.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace WindowsFormsApp7
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Black, 1);
  16.         private System.Drawing.Pen pen2 = new System.Drawing.Pen(Color.Red, 1);
  17.         private System.Drawing.Pen pen3 = new System.Drawing.Pen(Color.Green, 1);
  18.         private System.Drawing.Pen pen4 = new System.Drawing.Pen(Color.Blue, 1);
  19.         private System.Drawing.Graphics g;
  20.         // private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Blue, 3);
  21.         private System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);
  22.  
  23.  
  24.  
  25.  
  26.         public Form1()
  27.         {
  28.  
  29.             InitializeComponent();
  30.             g = pictureBox1.CreateGraphics();
  31.         }
  32.  
  33.  
  34.         private void Form1_Load(object sender, EventArgs e)
  35.         {
  36.  
  37.         }
  38.  
  39.         private void label3_Click(object sender, EventArgs e)
  40.         {
  41.  
  42.         }
  43.  
  44.         private void textBox3_TextChanged(object sender, EventArgs e)
  45.         {
  46.  
  47.         }
  48.  
  49.         private void label4_Click(object sender, EventArgs e)
  50.         {
  51.  
  52.         }
  53.  
  54.         private void textBox4_TextChanged(object sender, EventArgs e)
  55.         {
  56.  
  57.         }
  58.  
  59.         private void label1_Click(object sender, EventArgs e)
  60.         {
  61.  
  62.         }
  63.  
  64.         private void pictureBox1_Click(object sender, EventArgs e)
  65.         {
  66.  
  67.         }
  68.  
  69.  
  70.         private void button1_Click(object sender, EventArgs e)
  71.         {
  72.             MessageBox.Show("daa");
  73.         }
  74.  
  75.  
  76.         private void label9_Click(object sender, EventArgs e)
  77.         {
  78.  
  79.         }
  80.  
  81.         private void button2_Click(object sender, EventArgs e)
  82.         {
  83.             Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
  84.             Graphics gr = Graphics.FromImage(bmp);
  85.  
  86.             int srodekX = pictureBox1.Width / 2, srodekY = pictureBox1.Height / 2, maxX = pictureBox1.Width, maxY = pictureBox1.Height;
  87.             Point q = new Point();
  88.             Point[] p = new Point[8];
  89.             int ile_pkt, tmp;
  90.  
  91.             int.TryParse(textBox1.Text, out tmp);
  92.             p[0].X = tmp;
  93.             int.TryParse(textBox2.Text, out tmp);
  94.             p[0].Y = tmp;
  95.             int.TryParse(textBox3.Text, out tmp);
  96.             p[1].X = tmp;
  97.             int.TryParse(textBox4.Text, out tmp);
  98.             p[1].Y = tmp;
  99.             int.TryParse(textBox5.Text, out tmp);
  100.             p[2].X = tmp;
  101.             int.TryParse(textBox6.Text, out tmp);
  102.             p[2].Y = tmp;
  103.             int.TryParse(textBox7.Text, out tmp);
  104.             p[3].X = tmp;
  105.             int.TryParse(textBox8.Text, out tmp);
  106.             p[3].Y = tmp;
  107.  
  108.             p[4].X = 80;
  109.             p[4].Y = -20;
  110.             p[5].X = 100;
  111.             p[5].Y = 20;
  112.             p[6].X = 120;
  113.             p[6].Y = -20;
  114.             p[7].X = 140;
  115.             p[7].Y = 20;
  116.  
  117.  
  118.             int.TryParse(textBox9.Text, out ile_pkt);
  119.  
  120.             Point[][] points;
  121.             points = new Point[5][];
  122.             for (int i = 0; i < 5; i++)
  123.                 points[i] = new Point[ile_pkt];
  124.  
  125.  
  126.  
  127.  
  128.             double t = 0;
  129.             for (int j = 3; j < 8; j++)
  130.             {
  131.                 t = 0;
  132.                 for (int i = 0; i < ile_pkt; i++)
  133.                 {
  134.                     q.X = (int)(Math.Pow((1 - t), 3) / 6 * p[j - 3].X + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) / 6 * p[j - 2].X + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) / 6 * p[j - 1].X + Math.Pow(t, 3) / 6 * p[j].X);
  135.                     q.Y = (int)(Math.Pow((1 - t), 3) / 6 * p[j - 3].Y + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) / 6 * p[j - 2].Y + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) / 6 * p[j - 1].Y + Math.Pow(t, 3) / 6 * p[j].Y);
  136.  
  137.                     t += 1.0 / ile_pkt;
  138.                     points[j - 3][i].X = srodekX + q.X;
  139.                     points[j - 3][i].Y = srodekY - q.Y;
  140.                 }
  141.             }
  142.  
  143.             for (int i = 0; i < 5; i++)
  144.                 gr.DrawLines(pen2, points[i]);
  145.  
  146.  
  147.             for (int i = 0; i < 8; i++)
  148.                 gr.DrawEllipse(pen4, srodekX + p[i].X - 3, srodekY - p[i].Y - 3, 6, 6);
  149.  
  150.  
  151.             pictureBox1.Image = bmp;
  152.         }
  153.  
  154.         private void button3_Click(object sender, EventArgs e)
  155.         {
  156.  
  157.             Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
  158.             Graphics gr = Graphics.FromImage(bmp);
  159.  
  160.             int srodekX = pictureBox1.Width / 2, srodekY = pictureBox1.Height / 2, maxX = pictureBox1.Width, maxY = pictureBox1.Height;
  161.  
  162.  
  163.  
  164.             Point p1 = new Point(), p2 = new Point(), p3 = new Point(), p4 = new Point(), q = new Point();
  165.             int tmp;
  166.             int.TryParse(textBox1.Text, out tmp);
  167.             p1.X = tmp;
  168.             int.TryParse(textBox2.Text, out tmp);
  169.             p1.Y = tmp;
  170.             int.TryParse(textBox3.Text, out tmp);
  171.             p2.X = tmp;
  172.             int.TryParse(textBox4.Text, out tmp);
  173.             p2.Y = tmp;
  174.             int.TryParse(textBox5.Text, out tmp);
  175.             p3.X = tmp;
  176.             int.TryParse(textBox6.Text, out tmp);
  177.             p3.Y = tmp;
  178.             int.TryParse(textBox7.Text, out tmp);
  179.             p4.X = tmp;
  180.             int.TryParse(textBox8.Text, out tmp);
  181.             p4.Y = tmp;
  182.  
  183.  
  184.             gr.DrawEllipse(pen4, srodekX + p1.X - 3, srodekY - p1.Y - 3, 6, 6);
  185.             gr.DrawEllipse(pen4, srodekX + p4.X - 3, srodekY - p4.Y - 3, 6, 6);
  186.  
  187.  
  188.             gr.DrawLine(pen3, srodekX + p1.X, srodekY - p1.Y, srodekX + p2.X + p1.X, srodekY - p2.Y - p1.Y);
  189.             gr.DrawLine(pen3, srodekX + p4.X, srodekY - p4.Y, srodekX + p3.X + p4.X, srodekY - p3.Y - p4.Y);
  190.  
  191.             double t = 0.0;
  192.             int ile_pkt;
  193.             int.TryParse(textBox9.Text, out ile_pkt);
  194.  
  195.             Point[] points = new Point[ile_pkt];
  196.  
  197.             for (int i = 0; i < ile_pkt; i++)
  198.             {
  199.                 q.X = (int)((2 * Math.Pow(t, 3) - 3 * Math.Pow(t, 2) + 1) * p1.X + (-2 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2)) * p4.X + (Math.Pow(t, 3) - 2 * Math.Pow(t, 2) + t) * p2.X + (Math.Pow(t, 3) - Math.Pow(t, 2)) * p3.X);
  200.                 q.Y = (int)((2 * Math.Pow(t, 3) - 3 * Math.Pow(t, 2) + 1) * p1.Y + (-2 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2)) * p4.Y + (Math.Pow(t, 3) - 2 * Math.Pow(t, 2) + t) * p2.Y + (Math.Pow(t, 3) - Math.Pow(t, 2)) * p3.Y);
  201.  
  202.                 points[i].X = srodekX + q.X;
  203.                 points[i].Y = srodekY - q.Y;
  204.  
  205.                 t += 1.0 / ile_pkt;
  206.             }
  207.  
  208.             gr.DrawLines(pen2, points);
  209.  
  210.             pictureBox1.Image = bmp;
  211.         }
  212.  
  213.         private void button1_Click_1(object sender, EventArgs e)
  214.         {
  215.             Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
  216.             Graphics gr = Graphics.FromImage(bmp);
  217.  
  218.             int srodekX = pictureBox1.Width / 2, srodekY = pictureBox1.Height / 2, maxX = pictureBox1.Width, maxY = pictureBox1.Height;
  219.             Point p1 = new Point(), p2 = new Point(), p3 = new Point(), p4 = new Point(), q = new Point();
  220.             int ile_pkt, tmp;
  221.  
  222.             int.TryParse(textBox1.Text, out tmp);
  223.             p1.X = tmp;
  224.             int.TryParse(textBox2.Text, out tmp);
  225.             p1.Y = tmp;
  226.             int.TryParse(textBox3.Text, out tmp);
  227.             p2.X = tmp;
  228.             int.TryParse(textBox4.Text, out tmp);
  229.             p2.Y = tmp;
  230.             int.TryParse(textBox5.Text, out tmp);
  231.             p3.X = tmp;
  232.             int.TryParse(textBox6.Text, out tmp);
  233.             p3.Y = tmp;
  234.             int.TryParse(textBox7.Text, out tmp);
  235.             p4.X = tmp;
  236.             int.TryParse(textBox8.Text, out tmp);
  237.             p4.Y = tmp;
  238.             int.TryParse(textBox9.Text, out ile_pkt);
  239.             Point[] points = new Point[ile_pkt];
  240.  
  241.  
  242.  
  243.  
  244.             double t = 0;
  245.             for (int i = 0; i < ile_pkt; i++)
  246.             {
  247.                 q.X = (int)(Math.Pow((1 - t), 3) * p1.X + 3 * t * (Math.Pow((1 - t), 2)) * p2.X + 3 * Math.Pow(t, 2) * (1 - t) * p3.X + Math.Pow(t, 3) * p4.X);
  248.                 q.Y = (int)(Math.Pow((1 - t), 3) * p1.Y + 3 * t * (Math.Pow((1 - t), 2)) * p2.Y + 3 * Math.Pow(t, 2) * (1 - t) * p3.Y + Math.Pow(t, 3) * p4.Y);
  249.  
  250.                 t += 1.0 / ile_pkt;
  251.                 points[i].X = srodekX + q.X;
  252.                 points[i].Y = srodekY - q.Y;
  253.             }
  254.  
  255.             gr.DrawLines(pen2, points);
  256.  
  257.  
  258.             gr.DrawEllipse(pen4, srodekX + p1.X - 3, srodekY - p1.Y - 3, 6, 6);
  259.             gr.DrawEllipse(pen4, srodekX + p2.X - 3, srodekY - p2.Y - 3, 6, 6);
  260.             gr.DrawEllipse(pen4, srodekX + p3.X - 3, srodekY - p3.Y - 3, 6, 6);
  261.             gr.DrawEllipse(pen4, srodekX + p4.X - 3, srodekY - p4.Y - 3, 6, 6);
  262.  
  263.  
  264.             pictureBox1.Image = bmp;
  265.         }
  266.  
  267.         private void button2_Click_1(object sender, EventArgs e)
  268.         {
  269.             Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
  270.             Graphics gr = Graphics.FromImage(bmp);
  271.  
  272.             int srodekX = pictureBox1.Width / 2, srodekY = pictureBox1.Height / 2, maxX = pictureBox1.Width, maxY = pictureBox1.Height;
  273.             Point q = new Point();
  274.             Point[] p = new Point[8];
  275.             int ile_pkt, tmp;
  276.  
  277.             int.TryParse(textBox1.Text, out tmp);
  278.             p[0].X = tmp;
  279.             int.TryParse(textBox2.Text, out tmp);
  280.             p[0].Y = tmp;
  281.             int.TryParse(textBox3.Text, out tmp);
  282.             p[1].X = tmp;
  283.             int.TryParse(textBox4.Text, out tmp);
  284.             p[1].Y = tmp;
  285.             int.TryParse(textBox5.Text, out tmp);
  286.             p[2].X = tmp;
  287.             int.TryParse(textBox6.Text, out tmp);
  288.             p[2].Y = tmp;
  289.             int.TryParse(textBox7.Text, out tmp);
  290.             p[3].X = tmp;
  291.             int.TryParse(textBox8.Text, out tmp);
  292.             p[3].Y = tmp;
  293.  
  294.             p[4].X = 80;
  295.             p[4].Y = -20;
  296.             p[5].X = 100;
  297.             p[5].Y = 20;
  298.             p[6].X = 120;
  299.             p[6].Y = -20;
  300.             p[7].X = 140;
  301.             p[7].Y = 20;
  302.  
  303.  
  304.             int.TryParse(textBox9.Text, out ile_pkt);
  305.  
  306.             Point[][] points;
  307.             points = new Point[5][];
  308.             for (int i = 0; i < 5; i++)
  309.                 points[i] = new Point[ile_pkt];
  310.  
  311.  
  312.  
  313.  
  314.             double t = 0;
  315.             for (int j = 3; j < 8; j++)
  316.             {
  317.                 t = 0;
  318.                 for (int i = 0; i < ile_pkt; i++)
  319.                 {
  320.                     q.X = (int)(Math.Pow((1 - t), 3) / 6 * p[j - 3].X + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) / 6 * p[j - 2].X + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) / 6 * p[j - 1].X + Math.Pow(t, 3) / 6 * p[j].X);
  321.                     q.Y = (int)(Math.Pow((1 - t), 3) / 6 * p[j - 3].Y + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) / 6 * p[j - 2].Y + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) / 6 * p[j - 1].Y + Math.Pow(t, 3) / 6 * p[j].Y);
  322.  
  323.                     t += 1.0 / ile_pkt;
  324.                     points[j - 3][i].X = srodekX + q.X;
  325.                     points[j - 3][i].Y = srodekY - q.Y;
  326.                 }
  327.             }
  328.  
  329.             for (int i = 0; i < 5; i++)
  330.                 gr.DrawLines(pen2, points[i]);
  331.  
  332.  
  333.             for (int i = 0; i < 8; i++)
  334.                 gr.DrawEllipse(pen4, srodekX + p[i].X - 3, srodekY - p[i].Y - 3, 6, 6);
  335.  
  336.  
  337.             pictureBox1.Image = bmp;
  338.         }
  339.  
  340.         private void button3_Click_1(object sender, EventArgs e)
  341.         {
  342.             double[,] tab = new double[10, 2];
  343.  
  344.             tab[0, 0] = 0;
  345.             tab[0, 1] = 0;
  346.  
  347.             tab[1, 0] = 0;
  348.             tab[1, 1] = 200;
  349.  
  350.             tab[2, 0] = 100;
  351.             tab[2, 1] = 0;
  352.  
  353.             tab[3, 0] = 100;
  354.             tab[3, 1] = 200;
  355.  
  356.             tab[4, 0] = 200;
  357.             tab[4, 1] = 0;
  358.  
  359.             tab[5, 0] = 200;
  360.             tab[5, 1] = 200;
  361.  
  362.             tab[6, 0] = 300;
  363.             tab[6, 1] = 0;
  364.  
  365.             tab[7, 0] = 300;
  366.             tab[7, 1] = 200;
  367.  
  368.          
  369.  
  370.  
  371.             double xx, yy, x, y;
  372.             int i = 0;
  373.             double t = 0;
  374.             xx = Math.Pow((1 - t), 3) * tab[i, 0] / 6 + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) * tab[i + 1, 0] / 6 + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) * tab[i + 2, 0] / 6 + Math.Pow(t, 3) * tab[i + 3, 0] / 6;
  375.             yy = Math.Pow((1 - t), 3) * tab[i, 1] / 6 + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) * tab[i + 1, 1] / 6 + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) * tab[i + 2, 1] / 6 + Math.Pow(t, 3) * tab[i + 3, 1] / 6;
  376.  
  377.             for (i = 1; i < 4; i++)
  378.             {
  379.                 for (t = 0.001; t < 1; t = t + 0.001)
  380.                 {
  381.                     x = Math.Pow((1 - t), 3) * tab[i, 0] / 6 + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) * tab[i + 1, 0] / 6 + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) * tab[i + 2, 0] / 6 + Math.Pow(t, 3) * tab[i + 3, 0] / 6;
  382.                     y = Math.Pow((1 - t), 3) * tab[i, 1] / 6 + (3 * Math.Pow(t, 3) - 6 * Math.Pow(t, 2) + 4) * tab[i + 1, 1] / 6 + (-3 * Math.Pow(t, 3) + 3 * Math.Pow(t, 2) + 3 * t + 1) * tab[i + 2, 1] / 6 + Math.Pow(t, 3) * tab[i + 3, 1] / 6;
  383.                     g.DrawLine(pen1, (float)(xx), (float)(yy), (float)(x), (float)(y));
  384.                     xx = x;
  385.                     yy = y;
  386.                 }
  387.             }
  388.         }
  389.     }
  390. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement