public FiguraCubo(FiguraCubo copia) { X = copia.X; Y = copia.Y; Z = copia.Z; Zoom = copia.Zoom; Ángulo = copia.Ángulo; RotX = copia.RotX; RotY = copia.RotY; RotZ = copia.RotZ; }
// Constructor public FormCubo() { InitializeComponent(); //Valores iniciales cubo = new FiguraCubo( 600, 300, 0, trackZoom.Value, trackÁngulo.Value, 0, 0, 0 ); defecto = new FiguraCubo(cubo); SincronizarValores(); }
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = // Método para dibujar // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = /// <summary> /// Obtiene los puntos necesarios para dibujar un cubo con determinadas /// características de transformación /// </summary> /// <param name="cubo">El cubo a dibujar</param> /// <returns>Un arreglo de puntos para dibujar el cubo</returns> public static Punto[] GetPuntos(FiguraCubo cubo) { //Punto de inicio MatrizTraslación original = new MatrizTraslación(cubo.X, cubo.Y, cubo.Z); //Todos los puntos List <Matriz <double> > puntos3D = new List <Matriz <double> >(); Punto[] puntos2D = new Punto[17]; //Matriz inicial puntos3D.Add( original * new MatrizProporción(cubo.Zoom) * new MatrizRotación(Ejes.X, cubo.RotX * Math.PI / 180) * new MatrizRotación(Ejes.Y, cubo.RotY * Math.PI / 180) * new MatrizRotación(Ejes.Z, cubo.RotZ * Math.PI / 180) ); puntos2D[0] = new Punto(original, cubo.Ángulo); //Calcular el resto de los puntos for (int i = 1; i <= 16; i++) { Matriz <double> constante = new MatrizTraslación( constantes[i - 1, 0], constantes[i - 1, 1], constantes[i - 1, 2] ); Matriz <double> matriz = (new Matriz <double>(puntos3D[i - 1]) * new Matriz <double>(constante)); puntos3D.Add(matriz); puntos2D[i] = new Punto(new MatrizTraslación(puntos3D[i]), cubo.Ángulo); } return(puntos2D); }
private void btnDefaults_Click(object sender, EventArgs e) { cubo = new FiguraCubo(defecto); SincronizarValores(); }