Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApp8
- {
- public partial class Form1 : Form
- {
- private System.Drawing.Graphics g;
- private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Red, 1);
- public Form1()
- {
- InitializeComponent();
- g = pictureBox1.CreateGraphics();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void button1_Click(object sender, EventArgs e)
- {
- g = pictureBox1.CreateGraphics();
- double X1, Y1, X2, Y2, X3, Y3, X4, Y4;
- Double.TryParse(P1X.Text, out X1);
- Double.TryParse(P1Y.Text, out Y1);
- Double.TryParse(P2X.Text, out X2);
- Double.TryParse(P2Y.Text, out Y2);
- Double.TryParse(P3X.Text, out X3);
- Double.TryParse(P3Y.Text, out Y3);
- Double.TryParse(P4X.Text, out X4);
- Double.TryParse(P4Y.Text, out Y4);
- double Xp = X1, Yp = Y1;
- for (double t = 0; t < 1; t += 0.01)
- {
- double x = Math.Pow(1 - t, 3) * X1 + 3 * t * Math.Pow(1 - t, 2) * X2 + 3 * t * t * (1 - t) * X3 + Math.Pow(t, 3) * X4;
- double y = Math.Pow(1 - t, 3) * Y1 + 3 * t * Math.Pow(1 - t, 2) * Y2 + 3 * t * t * (1 - t) * Y3 + Math.Pow(t, 3) * Y4;
- g.DrawLine(pen1, (float)Xp, (float)Yp, (float)x, (float)y);
- Xp = x; Yp = y;
- }
- }
- private void pictureBox1_Click(object sender, EventArgs e)
- {
- }
- private void button2_Click(object sender, EventArgs e)
- {
- double X1, Y1, X2, Y2, X3, Y3, X4, Y4;
- Double.TryParse(P1X.Text, out X1);
- Double.TryParse(P1Y.Text, out Y1);
- Double.TryParse(P2X.Text, out X2);
- Double.TryParse(P2Y.Text, out Y2);
- Double.TryParse(P3X.Text, out X3);
- Double.TryParse(P3Y.Text, out Y3);
- Double.TryParse(P4X.Text, out X4);
- Double.TryParse(P4Y.Text, out Y4);
- double Xp = X1, Yp = Y1;
- for (double t = 0; t < 1; t += 0.01)
- {
- double x = (2 * t * t * t - 3 * t * t + 1) * X1 + (-2 * t * t * t + 3 * t * t) * X4 + (t * t * t - 2 * t * t + t) * X2 + (t * t * t - t * t) * X3;
- double y = (2 * t * t * t - 3 * t * t + 1) * Y1 + (-2 * t * t * t + 3 * t * t) * Y4 + (t * t * t - 2 * t * t + t) * Y2 + (t * t * t - t * t) * Y3;
- g.DrawLine(pen1, (float)Xp, (float)Yp, (float)x, (float)y);
- Xp = x; Yp = y;
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- double[,] tab = new double[8, 2];
- tab[0, 0] = 0;
- tab[0, 1] = 0;
- tab[1, 0] = 0;
- tab[1, 1] = 200;
- tab[2, 0] = 100;
- tab[2, 1] = 0;
- tab[3, 0] = 100;
- tab[3, 1] = 200;
- tab[4, 0] = 200;
- tab[4, 1] = 0;
- tab[5, 0] = 200;
- tab[5, 1] = 200;
- tab[6, 0] = 300;
- tab[6, 1] = 0;
- tab[7, 0] = 300;
- tab[7, 1] = 200;
- double xx, yy, x, y;
- int i = 0;
- double t = 0;
- 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;
- 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;
- for (i = 1; i < 4; i++)
- {
- for (t = 0.001; t < 1; t = t + 0.001)
- {
- 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;
- 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;
- g.DrawLine(pen1, (float)(xx), (float)(yy), (float)(x), (float)(y));
- xx = x;
- yy = y;
- }
- } }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement