Пример #1
0
        //lab2


        private void CurveDrawButton_Click(object sender, EventArgs e)
        {
            int a = 0;

            if (val.CheckCurveParams(CurveATextBox.Text, ref a))
            {
                ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
                gridandaxis     = new Drawing();
                GetAxisAndGrid();
                Types.Matrix matrix = new Types.Matrix(1, 0, 0,
                                                       0, 1, 0,
                                                       300, 250, 1);
                gridandaxis.Transform(matrix);
                DrawAxisAndGrid();
                gridandaxis._x = 320;
                gridandaxis._y = 270;
                drawing        = new Drawing();
                curve          = new Curve();
                DrawCurve(a);
            }
            else
            {
                MessageBox.Show("Incorrect values", "Error");
            }
        }
Пример #2
0
        private void PrTransform_Click(object sender, EventArgs e)
        {
            ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
            Graphics g  = Graphics.FromImage(ModelView.Image);
            int      x1 = Convert.ToInt32(PrRx1X.Text);
            int      y1 = Convert.ToInt32(PrRx1Y.Text);
            int      w1 = Convert.ToInt32(PrRx1w.Text);
            int      x2 = Convert.ToInt32(PrRx2X.Text);
            int      y2 = Convert.ToInt32(PrRx2Y.Text);
            int      w2 = Convert.ToInt32(PrRx2w.Text);
            int      x0 = Convert.ToInt32(PrOX.Text);
            int      y0 = Convert.ToInt32(PrOY.Text);
            int      w0 = Convert.ToInt32(PrOw.Text);

            Types.Matrix matrix = new Types.Matrix(x1 * w1, y1 * w1, w1,
                                                   x2 * w2, y2 * w2, w2,
                                                   x0 * w0, y0 * w0, w0);
            drawing.Transform(matrix);
            gridandaxis.Transform(matrix);
            curve.Transform(matrix);
            curve.Draw(g);
            DrawAxisAndGrid();
            drawing.Draw(g);
            ModelView.Refresh();
        }
Пример #3
0
        private void RotatePointButton_Click(object sender, EventArgs e)
        {
            ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
            Graphics g = Graphics.FromImage(ModelView.Image);

            DrawAxisAndGrid();
            double angle = Convert.ToInt32(RtPtAng.Text) * Math.PI / 180;
            int    x     = Convert.ToInt32(RtPtX.Text);
            int    y     = Convert.ToInt32(RtPtY.Text);

            Types.Matrix matrix = new Types.Matrix(1, 0, 0,
                                                   0, 1, 0,
                                                   -x, -y, 1);
            matrix = matrix.Multiple(new Types.Matrix(Math.Cos(angle), Math.Sin(angle), 0,
                                                      -Math.Sin(angle), Math.Cos(angle), 0,
                                                      0, 0, 1));
            matrix = matrix.Multiple(new Types.Matrix(1, 0, 0,
                                                      0, 1, 0,
                                                      x, y, 1));
            drawing.Transform(matrix);
            drawing.Draw(g);
            curve.Transform(matrix);
            curve.Draw(g);
            ModelView.Refresh();
        }
Пример #4
0
        private void button2_Click(object sender, EventArgs e)//ScaleButton
        {
            ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
            Graphics g = Graphics.FromImage(ModelView.Image);

            Types.Matrix matrix = new Types.Matrix(Convert.ToDouble(ScX.Text), 0, 0,
                                                   0, Convert.ToDouble(ScY.Text), 0,
                                                   0, 0, 1);
            drawing.Transform(matrix);
            gridandaxis.Transform(matrix);
            curve.Transform(matrix);
            curve.Draw(g);
            DrawAxisAndGrid();
            drawing.Draw(g);
            ModelView.Refresh();
        }
Пример #5
0
        private void TranslateButton_Click(object sender, EventArgs e)
        {
            ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
            Graphics g = Graphics.FromImage(ModelView.Image);

            DrawAxisAndGrid();
            int x = Convert.ToInt32(TrX.Text);
            int y = Convert.ToInt32(TrY.Text);

            Types.Matrix matrix = new Types.Matrix(1, 0, 0,
                                                   0, 1, 0,
                                                   x, y, 1);
            drawing.Transform(matrix);
            drawing.Draw(g);
            curve.Transform(matrix);
            curve.Draw(g);
            ModelView.Refresh();
        }
Пример #6
0
        private void AffTransformButton_Click(object sender, EventArgs e)
        {
            ModelView.Image = new Bitmap(ModelView.Width, ModelView.Height);
            Graphics g  = Graphics.FromImage(ModelView.Image);
            double   x1 = Convert.ToInt32(AffRx1X.Text) / 50;
            double   y1 = Convert.ToInt32(AffRx1Y.Text) / 50;
            double   x2 = Convert.ToInt32(AffRx2X.Text) / 50;
            double   y2 = Convert.ToInt32(AffRx2Y.Text) / 50;
            double   x0 = Convert.ToInt32(AffOX.Text) / 50;
            double   y0 = Convert.ToInt32(AffOY.Text) / 50;

            Types.Matrix matrix = new Types.Matrix(x1, y1, 0,
                                                   x2, y2, 0,
                                                   x0, y0, 1);
            drawing.Transform(matrix);
            gridandaxis.Transform(matrix);
            curve.Transform(matrix);
            curve.Draw(g);
            DrawAxisAndGrid();
            drawing.Draw(g);
            ModelView.Refresh();
        }