예제 #1
0
 private void AphineGlobal(Point3D p)
 {
     double[] a = AphineWork.multMatrix(cam.aphineMatrix, p.AsMatrix());
     p.X = a[0];
     p.Y = a[1];
     p.Z = a[2];
 }
예제 #2
0
 private void AphineLocal(Point3D p)
 {
     double[] a = AphineWork.multMatrix(Cylindr.aphineMatrix, p.AsMatrix());
     p.X = a[0];
     p.Y = a[1];
     p.Z = a[2];
 }
예제 #3
0
파일: Form1.cs 프로젝트: XeonSun/CGLab5
        //Кнопка применить
        private void button2_Click(object sender, EventArgs e)
        {
            double  v        = 0;
            IAphine selected = cyl;

            if (Double.TryParse(textBox_value.Text, out v))
            {
                if (radioButton_Obj.Checked)
                {
                    selected = cyl;
                }
                if (radioButton_Cam.Checked)
                {
                    selected = cam;
                }

                if (radioButton_Move.Checked && radioButton_X.Checked)
                {
                    AphineWork.Move(selected, v, 0, 0);
                }
                if (radioButton_Move.Checked && radioButton_Y.Checked)
                {
                    AphineWork.Move(selected, 0, v, 0);
                }
                if (radioButton_Move.Checked && radioButton_Z.Checked)
                {
                    AphineWork.Move(selected, 0, 0, v);
                }

                if (radioButton_Scale.Checked && radioButton_X.Checked)
                {
                    AphineWork.Scale(selected, v, 1, 1);
                }
                if (radioButton_Scale.Checked && radioButton_Y.Checked)
                {
                    AphineWork.Scale(selected, 1, v, 1);
                }
                if (radioButton_Scale.Checked && radioButton_Z.Checked)
                {
                    AphineWork.Scale(selected, 1, 1, v);
                }

                if (radioButton_Rotate.Checked && radioButton_X.Checked)
                {
                    AphineWork.RotateX(selected, v / 100);
                }
                if (radioButton_Rotate.Checked && radioButton_Y.Checked)
                {
                    AphineWork.RotateY(selected, v / 100);
                }
                if (radioButton_Rotate.Checked && radioButton_Z.Checked)
                {
                    AphineWork.RotateZ(selected, v / 100);
                }
                //g.DrawImage(render.Draw(int.Parse(textBox_cadrX.Text), int.Parse(textBox_cadrY.Text)), 0, 0);
            }
            g.DrawImage(render.Draw(int.Parse(textBox_cadrX.Text), int.Parse(textBox_cadrY.Text)), 0, 0);
        }
예제 #4
0
파일: Form1.cs 프로젝트: XeonSun/CGLab5
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 100; i++)
            {
                //AphineWork.Move(s.cam, 0, 0, -1);
                AphineWork.RotateY(render.cam, -0.01);

                AphineWork.RotateX(render.Cylindr, -0.1);

                g.DrawImage(render.Draw(250, 250), 0, 0);
                //pictureBox1.Image = s.Draw();
                Thread.Sleep(10);
            }
        }