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 WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- private delegate void PaintPicture();
- PaintPicture paintPicture;
- private System.Drawing.Graphics g;
- private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Black, 1);
- private System.Drawing.Pen pen_red = new System.Drawing.Pen(Color.Red, 1);
- private System.Drawing.Pen pen_gray = new System.Drawing.Pen(Color.Gray, 1);
- private System.Drawing.Pen pen_green = new System.Drawing.Pen(Color.Green, 1);
- private SolidBrush brush1 = new SolidBrush(Color.Red);
- public Form1()
- {
- InitializeComponent();
- g = pictureBox1.CreateGraphics();
- P1x.Text = "-150";
- P1y.Text = "100";
- P2x.Text = "30";
- P2y.Text = "70";
- P3x.Text = "150";
- P3y.Text = "170";
- P4x.Text = "185";
- P4y.Text = "80";
- P5x.Text = "70";
- P5y.Text = "-20";
- P6x.Text = "160";
- P6y.Text = "-80";
- P7x.Text = "-60";
- P7y.Text = "-80";
- P8x.Text = "-50";
- P8y.Text = "60";
- P9x.Text = "-30";
- P9y.Text = "-30";
- P10x.Text = "-100";
- P10y.Text = "180";
- paintPicture = ktora_strona;
- }
- private void label2_Click(object sender, EventArgs e)
- {
- }
- private void krzywaHermitea_Click(object sender, EventArgs e)
- {
- int P1_x, P1_y, P2_x, P2_y;
- int.TryParse(P1x.Text, out P1_x);
- int.TryParse(P1y.Text, out P1_y);
- int.TryParse(P2x.Text, out P2_x);
- int.TryParse(P2y.Text, out P2_y);
- drawPoint(P2_x, P2_y, Color.Black);
- drawPoint(P1_x, P1_y, Color.Black);
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- }
- private void wyczysc_Click(object sender, EventArgs e)
- {
- pictureBox1.Refresh();
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- }
- private void drawPoint(int x, int y, Color color)
- {
- System.Drawing.Pen point_pen = new System.Drawing.Pen(color, 1);
- SolidBrush point_brush = new SolidBrush(color );
- g.DrawEllipse(point_pen, x-2 + pictureBox1.Width / 2, -y - 2 + pictureBox1.Height / 2, 4, 4);
- g.FillEllipse(point_brush, x - 2 + pictureBox1.Width / 2, -y - 2 + pictureBox1.Height / 2, 4, 4);
- }
- private void krzywabaziera_Click(object sender, EventArgs e)
- {
- paintPicture = ktora_strona;
- paintPicture();
- }
- void ktora_strona()
- {
- int P1_x, P1_y, P2_x, P2_y, R1_x, R1_y;
- int.TryParse(P1x.Text, out P1_x);
- int.TryParse(P1y.Text, out P1_y);
- int.TryParse(P2x.Text, out P2_x);
- int.TryParse(P2y.Text, out P2_y);
- int.TryParse(P3x.Text, out R1_x);
- int.TryParse(P3y.Text, out R1_y);
- Matrix3x3 matrix = new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1,
- R1_x, R1_y, 1);
- float det = matrix.getDet();
- String ktora_strona = "Na linii";
- if (det > 0)
- {
- ktora_strona = "Po lewej";
- }
- else if (det < 0)
- {
- ktora_strona = "Po prawej";
- }
- strona.Text = ktora_strona;
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- drawPoint(P1_x, P1_y, Color.Black);
- drawPoint(P2_x, P2_y, Color.Black);
- drawPoint(R1_x, R1_y, Color.Red);
- }
- private void bsklejane_Click(object sender, EventArgs e)
- {
- paintPicture = czy_dwa_punkty;
- paintPicture();
- }
- void czy_dwa_punkty()
- {
- int P1_x, P1_y, P2_x, P2_y, P3_x, P3_y, P4_x, P4_y, P5_x, P5_y, P6_x, P6_y, P7_x, P7_y, P8_x, P8_y;
- int.TryParse(P1x.Text, out P1_x);
- int.TryParse(P1y.Text, out P1_y);
- int.TryParse(P2x.Text, out P2_x);
- int.TryParse(P2y.Text, out P2_y);
- int.TryParse(P4x.Text, out P4_x);
- int.TryParse(P4y.Text, out P4_y);
- int.TryParse(P5x.Text, out P5_x);
- int.TryParse(P5y.Text, out P5_y);
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- drawPoint(P1_x, P1_y, Color.Black);
- drawPoint(P2_x, P2_y, Color.Black);
- drawPoint(P4_x, P4_y, Color.Green);
- drawPoint(P5_x, P5_y, Color.Green);
- Matrix3x3 matrix1 = new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1,
- P4_x, P4_y, 1);
- Matrix3x3 matrix2 = new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1,
- P5_x, P5_y, 1);
- String ta_sama_strona = "na linii";
- if (Math.Sign(matrix1.getDet()) == Math.Sign(matrix2.getDet()))
- {
- ta_sama_strona = "Po tej samej stronie";
- }
- else
- {
- ta_sama_strona = "Po innych stronach";
- }
- label17.Text = ta_sama_strona;
- }
- private void label8_Click(object sender, EventArgs e)
- {
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int P1_x, P1_y, P2_x, P2_y, P6_x, P6_y;
- int.TryParse(P1x.Text, out P1_x);
- int.TryParse(P1y.Text, out P1_y);
- int.TryParse(P2x.Text, out P2_x);
- int.TryParse(P2y.Text, out P2_y);
- int.TryParse(P6x.Text, out P6_x);
- int.TryParse(P6y.Text, out P6_y);
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- drawPoint(P1_x, P1_y, Color.Black);
- drawPoint(P2_x, P2_y, Color.Black);
- drawPoint(P6_x, P6_y, Color.Blue);
- Matrix3x3 matrix = new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1, P6_x, P6_y, 1);
- String czy_nalezy = "";
- float det = matrix.getDet();
- if (det == 0) {
- if (((P1_x >= P6_x) && ( P2_x<=P6_x) )||(P1_x <= P6_x) && ( P2_x>=P6_x)) {
- czy_nalezy = " TAK";
- }
- }else /*if ((Math.Abs(det) < 5000) && (P1_x <= P6_x && P6_x <= P2_x)) {
- czy_nalezy = "bardzo BLISKO odcinka";
- }else */{
- czy_nalezy = "NIE";
- }
- czyNalezy_label.Text = czy_nalezy;
- }
- private void button1_Click_1(object sender, EventArgs e)
- {
- int P1_x, P1_y, P2_x, P2_y, P7_x, P7_y, P8_x, P8_y;
- int.TryParse(P1x.Text, out P1_x);
- int.TryParse(P1y.Text, out P1_y);
- int.TryParse(P2x.Text, out P2_x);
- int.TryParse(P2y.Text, out P2_y);
- int.TryParse(P7x.Text, out P7_x);
- int.TryParse(P7y.Text, out P7_y);
- int.TryParse(P8x.Text, out P8_x);
- int.TryParse(P8y.Text, out P8_y);
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P7_x + pictureBox1.Width / 2, -P7_y + pictureBox1.Height / 2, P8_x + pictureBox1.Width / 2, -(P8_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- drawPoint(P1_x, P1_y, Color.Black);
- drawPoint(P2_x, P2_y, Color.Black);
- drawPoint(P7_x, P7_y, Color.Purple);
- drawPoint(P8_x, P8_y, Color.Purple);
- Matrix3x3 matrix1 = new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1, P7_x, P7_y, 1);
- Matrix3x3 matrix2= new Matrix3x3(P1_x, P1_y, 1, P2_x, P2_y, 1, P8_x, P8_y, 1);
- Matrix3x3 matrix3 = new Matrix3x3(P7_x, P7_y, 1, P8_x, P8_y, 1, P1_x, P1_y, 1);
- Matrix3x3 matrix4 = new Matrix3x3(P7_x, P7_y, 1, P8_x, P8_y, 1, P2_x, P2_y, 1);
- String czyPrzecinajaSie = "na linii";
- if (Math.Sign(matrix1.getDet()) != Math.Sign(matrix2.getDet())
- && Math.Sign(matrix3.getDet()) != Math.Sign(matrix4.getDet())) {
- czyPrzecinajaSie = "Przecinają się";
- } else {
- czyPrzecinajaSie = "Nie przecinają się";
- }
- czyPrzecinajaSie_label.Text = czyPrzecinajaSie;
- }
- private void wew_wielokata_Click(object sender, EventArgs e)
- {
- int P1_x, P1_y, P2_x, P2_y, P3_x, P3_y, P4_x, P4_y, P5_x, P5_y, P6_x, P6_y, P7_x, P7_y, P8_x, P8_y, P9_x, P9_y, P10_x, P10_y;
- int.TryParse(P1x.Text,out P1_x);
- int.TryParse(P1y.Text,out P1_y);
- int.TryParse(P2x.Text,out P2_x);
- int.TryParse(P2y.Text,out P2_y);
- int.TryParse(P3x.Text, out P3_x);
- int.TryParse(P3y.Text, out P3_y);
- int.TryParse(P4x.Text,out P4_x);
- int.TryParse(P4y.Text,out P4_y);
- int.TryParse(P5x.Text,out P5_x);
- int.TryParse(P5y.Text,out P5_y);
- int.TryParse(P6x.Text,out P6_x);
- int.TryParse(P6y.Text,out P6_y);
- int.TryParse(P7x.Text,out P7_x);
- int.TryParse(P7y.Text,out P7_y);
- int.TryParse(P8x.Text,out P8_x);
- int.TryParse(P8y.Text,out P8_y);
- int.TryParse(P7x.Text, out P7_x);
- int.TryParse(P7y.Text, out P7_y);
- int.TryParse(P8x.Text, out P8_x);
- int.TryParse(P8y.Text, out P8_y);
- int.TryParse(P9x.Text, out P9_x);
- int.TryParse(P9y.Text, out P9_y);
- int.TryParse(P10x.Text, out P10_x);
- int.TryParse(P10y.Text, out P10_y);
- drawPoint(P1_x, P1_y, Color.Black);
- drawPoint(P2_x, P2_y,Color.Black);
- drawPoint(P3_x, P3_y,Color.Red);
- drawPoint(P4_x, P4_y,Color.Green);
- drawPoint(P5_x, P5_y ,Color.Green);
- drawPoint(P6_x, P6_y,Color.Blue);
- drawPoint(P7_x, P7_y,Color.Purple);
- drawPoint(P8_x, P8_y, Color.Purple);
- drawPoint(P9_x, P9_y,Color.Brown);
- drawPoint(P10_x, P10_y, Color.Brown);
- g.DrawLine(pen_gray, P1_x + pictureBox1.Width / 2, -P1_y + pictureBox1.Height / 2, P2_x + pictureBox1.Width / 2, -(P2_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P2_x + pictureBox1.Width / 2, -P2_y + pictureBox1.Height / 2, P3_x + pictureBox1.Width / 2, -(P3_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P3_x + pictureBox1.Width / 2, -P3_y + pictureBox1.Height / 2, P4_x + pictureBox1.Width / 2, -(P4_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P4_x + pictureBox1.Width / 2, -P4_y + pictureBox1.Height / 2, P5_x + pictureBox1.Width / 2, -(P5_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P5_x + pictureBox1.Width / 2, -P5_y + pictureBox1.Height / 2, P6_x + pictureBox1.Width / 2, -(P6_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P6_x + pictureBox1.Width / 2, -P6_y + pictureBox1.Height / 2, P7_x + pictureBox1.Width / 2, -(P7_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P7_x + pictureBox1.Width / 2, -P7_y + pictureBox1.Height / 2, P8_x + pictureBox1.Width / 2, -(P8_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_gray, P8_x + pictureBox1.Width / 2, -P8_y + pictureBox1.Height / 2, P1_x + pictureBox1.Width / 2, -(P1_y) + pictureBox1.Height / 2);
- g.DrawLine(pen_green, P9_x + pictureBox1.Width / 2, -P9_y + pictureBox1.Height / 2, P10_x + pictureBox1.Width / 2, -(P10_y) + pictureBox1.Height / 2);
- g.DrawLine(pen1, 20, pictureBox1.Height / 2, pictureBox1.Width - 20, pictureBox1.Height / 2);
- g.DrawLine(pen1, pictureBox1.Width / 2, 20, pictureBox1.Width / 2, pictureBox1.Height - 20);
- int licznik=0;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P1_x, P1_y, P2_x, P2_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P2_x, P2_y, P3_x, P3_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P3_x, P3_y, P4_x, P4_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P4_x, P4_y, P5_x, P5_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P5_x, P5_y, P6_x, P6_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P6_x, P6_y, P7_x, P7_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P7_x, P7_y, P8_x, P8_y)) licznik++;
- if (ifCross(P9_x, P9_y, P10_x, P10_y, P8_x, P8_y, P1_x, P1_y)) licznik++;
- if(licznik%2==0)
- czyWewnatrz_label.Text = "Nie! Liczba przecięć: "+licznik;
- else
- czyWewnatrz_label.Text = "Tak! Liczba przecięć: "+licznik;
- }
- public bool ifCross(int p1x, int p1y, int p2x, int p2y, int p3x, int p3y, int p4x, int p4y)
- {
- Matrix3x3 matrix1 = new Matrix3x3(p1x, p1y, 1, p2x, p2y, 1, p3x, p3y, 1);
- Matrix3x3 matrix2 = new Matrix3x3(p1x, p1y, 1, p2x, p2y, 1, p4x, p4y, 1);
- Matrix3x3 matrix3 = new Matrix3x3(p3x, p3y, 1, p4x, p4y, 1, p1x, p1y, 1);
- Matrix3x3 matrix4 = new Matrix3x3(p3x, p3y, 1, p4x, p4y, 1, p2x, p2y, 1);
- if (Math.Sign(matrix1.getDet()) != Math.Sign(matrix2.getDet())
- && Math.Sign(matrix3.getDet()) != Math.Sign(matrix4.getDet()))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- private void przywroc_Click(object sender, EventArgs e)
- {
- P1x.Text = "-150";
- P1y.Text = "100";
- P2x.Text = "30";
- P2y.Text = "70";
- P3x.Text = "150";
- P3y.Text = "170";
- P4x.Text = "185";
- P4y.Text = "80";
- P5x.Text = "70";
- P5y.Text = "-20";
- P6x.Text = "160";
- P6y.Text = "-80";
- P7x.Text = "-60";
- P7y.Text = "-80";
- P8x.Text = "-50";
- P8y.Text = "60";
- P9x.Text = "-30";
- P9y.Text = "-30";
- P10x.Text = "-100";
- P10y.Text = "180";
- }
- private void pictureBox1_Click(object sender, EventArgs e)
- {
- MouseEventArgs me = (MouseEventArgs)e;
- MouseButtons buttons = me.Button;
- Point p = me.Location;
- //if (ModifierKeys.HasFlag(Keys.Control)){
- if (buttons == MouseButtons.Left && paintPicture==ktora_strona)
- {
- P3x.Text = Convert.ToString(p.X-pictureBox1.Width/2);
- P3y.Text = Convert.ToString(-(p.Y-pictureBox1.Height/2));
- }
- else if (paintPicture == czy_dwa_punkty)
- {
- if(buttons == MouseButtons.Left ){
- P4x.Text = Convert.ToString(p.X - pictureBox1.Width / 2);
- P4y.Text = Convert.ToString(-(p.Y - pictureBox1.Height / 2));
- }
- if (buttons == MouseButtons.Right)
- {
- P5x.Text = Convert.ToString(p.X - pictureBox1.Width / 2);
- P5y.Text = Convert.ToString(-(p.Y - pictureBox1.Height / 2));
- }
- }
- pictureBox1.Refresh();
- paintPicture();
- }
- private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
- {
- pictureBox1_Click(sender, e);
- }
- private void generic_TextChanged(object sender, EventArgs e)
- {
- paintPicture();
- }
- }
- public class Matrix3x3
- {
- float[,] points;
- public Matrix3x3(float p0, float p1, float p2, float p3, float p4,
- float p5, float p6, float p7, float p8)
- {
- points = new float[3, 3];
- points[0, 0] = p0;
- points[0, 1] = p1;
- points[0, 2] = p2;
- points[1, 0] = p3;
- points[1, 1] = p4;
- points[1, 2] = p5;
- points[2, 0] = p6;
- points[2, 1] = p7;
- points[2, 2] = p8;
- }
- public float getDet()
- {
- float result = (points[0, 0] * points[1, 1] * points[2, 2]
- + points[1, 0] * points[2, 1] * points[0, 2] + points[2, 0] * points[0, 1] * points[1, 2])
- - (points[0, 2] * points[1, 1] * points[2, 0] + points[1, 2] * points[2, 1] * points[0, 0] + points[2, 2] * points[0, 1] * points[1, 0]);
- return result;
- }
- public void setMatrix(float p0, float p1, float p2, float p3, float p4,
- float p5, float p6, float p7, float p8)
- {
- points = new float[3, 3];
- points[0, 0] = p0;
- points[0, 1] = p1;
- points[0, 2] = p2;
- points[1, 0] = p3;
- points[1, 1] = p4;
- points[1, 2] = p5;
- points[2, 0] = p6;
- points[2, 1] = p7;
- points[2, 2] = p8;
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement