public void Przesun(double x, double y, double z) { double[,] macierzPrzesuniecia = Macierze.getMacierzPrzesuniecia(x, y, z); foreach (Figura figura in figury) { figura.PrzesunFigure(macierzPrzesuniecia); } }
public void Skaluj(double x, double y, double z) { double[,] macierzSkalowania = Macierze.getMacierzSkalowania(x, y, z); foreach (Figura figura in figury) { figura.PrzesunFigure(macierzSkalowania); } }
public void ObrocZ(double katObrotu) { double[,] macierzObrotu = Macierze.getMacierzObrotuZ(katObrotu); foreach (Figura figura in figury) { figura.ObrocFigure(macierzObrotu); } }
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); } }
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]; } }
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]; } }
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 }; }