Beispiel #1
0
 public void Przesun(double x, double y, double z)
 {
     double[,] macierzPrzesuniecia = Macierze.getMacierzPrzesuniecia(x, y, z);
     foreach (Figura figura in figury)
     {
         figura.PrzesunFigure(macierzPrzesuniecia);
     }
 }
Beispiel #2
0
 public void Skaluj(double x, double y, double z)
 {
     double[,] macierzSkalowania = Macierze.getMacierzSkalowania(x, y, z);
     foreach (Figura figura in figury)
     {
         figura.PrzesunFigure(macierzSkalowania);
     }
 }
Beispiel #3
0
 public void ObrocZ(double katObrotu)
 {
     double[,] macierzObrotu = Macierze.getMacierzObrotuZ(katObrotu);
     foreach (Figura figura in figury)
     {
         figura.ObrocFigure(macierzObrotu);
     }
 }
Beispiel #4
0
 public void Obroc(double katObrotuX, double katObrotuY, double katObrotuZ)
 {
     double[,] macierzObrotu = Macierze.MnozMacierze(Macierze.getMacierzObrotuX(katObrotuX), Macierze.getMacierzObrotuY(katObrotuY));
     macierzObrotu           = Macierze.MnozMacierze(Macierze.getMacierzObrotuZ(katObrotuZ), macierzObrotu);
     foreach (Figura figura in figury)
     {
         figura.ObrocFigure(macierzObrotu);
     }
 }
Beispiel #5
0
        public void ObrocPunkt(double[,] macierzObrotu)
        {
            double[,] wynik = Macierze.MnozWektorMacierzNormalizacja(this.getWektorRzeczywisty, macierzObrotu);

            if (wynik.GetLength(0) != 1 || wynik.GetLength(1) != 4)
            {
                throw new Exception("Wektor po obróceniu ma złe wymiary 1 != " + wynik.GetLength(0) + " lub 4 != " + wynik.GetLength(1));
            }
            else
            {
                this.rzeczywistyX = wynik[0, 0];
                this.rzeczywistyY = wynik[0, 1];
                this.rzeczywistyZ = wynik[0, 2];
            }
        }
Beispiel #6
0
        public void RzutujPunkt(double[,] macierzRzutowania)
        {
            this.rzeczywistyZ += 3;
            double[,] wynik    = Macierze.MnozWektorMacierzNormalizacja(this.getWektorRzeczywisty, macierzRzutowania);
            this.rzeczywistyZ -= 3;

            if (wynik.GetLength(0) != 1 || wynik.GetLength(1) != 4)
            {
                throw new Exception("Wektor po rzutowaniu ma złe wymiary 1 != " + wynik.GetLength(0) + " lub 4 != " + wynik.GetLength(1));
            }
            else
            {
                this.rzeczywistyZX = wynik[0, 0];
                this.rzeczywistyZY = wynik[0, 1];
                this.rzeczywistyZZ = wynik[0, 2];
            }
        }
Beispiel #7
0
        public Scena(int szerokosc, int wyskokosc, PictureBox pictureBox)
        {
            double rzutnia1       = 0.1;
            double rzutnia2       = 1000.0;
            double katWidzenia    = 90.0;
            double proporcjeSceny = (double)wyskokosc / (double)szerokosc;
            double poleWidzenia   = 1.0 / Math.Tan(0.5 * katWidzenia / 180.0 * Math.PI);

            this.pictureBox = pictureBox;
            this.bitmap     = new Bitmap(szerokosc, wyskokosc);
            this.figury     = new List <Figura>();

            this.macierzRzutowania = Macierze.getMacierzRzutowania((double)wyskokosc / (double)szerokosc,
                                                                   1.0 / Math.Tan(Macierze.Radiany(0.5 * katWidzenia)), rzutnia1, rzutnia2);

            //this.oswietlenie = new double[] { 0, 0.0, -5.0};
            this.oswietlenie = new double[] { 10.0, 0.0, 5.0 };
        }