/// <summary> /// /// DIBUJA EL PLANO, EL PUNTO Y INICIA/ LA EXPLICACION /// /// </summary> /// private void IniciarResolucion() { btDefecto.Hide(); if (defecto) { this.Focus(); btContinuar.Visible = true; this.AcceptButton = this.btContinuar; paso++; //Vector perpendicular tbPunto1X.Text = "2"; tbPunto1Y.Text = "6"; tbPunto1Z.Text = "3"; //Punto de paso tbPunto2X.Text = "15"; tbPunto2Y.Text = "26"; tbPunto2Z.Text = "10"; // Punto del que se quiere encontrar la distancia al plano tbPunto3X.Text = "50"; tbPunto3Y.Text = "60"; tbPunto3Z.Text = "45"; } // Mostrar los controles lbTituloAnguloX.Visible = true; btIsometrica.Visible = true; lbAnguloX.Visible = true; btAlzado.Visible = true; sbAngulox.Visible = true; btPerfil.Visible = true; lbTituloAnguloY.Visible = true; btPlanta.Visible = true; lbAnguloY.Visible = true; sbAnguloY.Visible = true; lbTituloAnguloZ.Visible = true; lbAnguloZ.Visible = true; sbAnguloZ.Visible = true; btZoomMas.Visible = true; btZoomMenos.Visible = true; lbZoomtitulo.Visible = true; lbAjustar.Visible = true; btAjustar.Visible = true; pnZoom.Visible = true; btAbajo.Visible = true; btArriba.Visible = true; btDerecha.Visible = true; btIzquierda.Visible = true; btCentrar.Visible = true; btContinuar.Visible = true; // Crear el vector perpendicular al plano perpendicular = new Vector(tbPunto1X.Text + " " + tbPunto1Y.Text + " " + tbPunto1Z.Text); // Crear el punto de paso del plano puntopasoplano = new Punto(tbPunto2X.Text + " " + tbPunto2Y.Text + " " + tbPunto2Z.Text); // Crear el punto del que se quiere encontrar la distancia al plano punto = new Punto(tbPunto3X.Text + " " + tbPunto3Y.Text + " " + tbPunto3Z.Text); // Crear el plano plano = new Plano(perpendicular, puntopasoplano); // Crear la recta perpendicular al plano y que pasa por el punto recta = new Recta(punto, plano.VectorPerpendicular); // Obtener el punto de interseccion de la recta con el plano puntointerseccion = plano.Interseccion(recta); // Punto oculto para establecer la escala Punto ficticio = plano.ADistanciaXY(35, 35); if (ficticio != null) { ventanagrafica.PintarVector(ficticio, ficticio, Color.Black, 1, false); } else { ficticio = new Punto("35 35 35"); ventanagrafica.PintarVector(ficticio, ficticio, Color.Black, 1, false); } if (directa) { lbExplicacion.Hide(); } lbExplicacion.Text = " La distancia entre el punto y el plano, es el módulo del vector que vá desde el punto inicial, al punto donde una recta perpendicular al plano y que pasa por el punto inicial, corta al plano."; // Calcular el tamaño del plano para que pase por el punto de interseccion con la recta perpendicular Racional dist = plano.PuntoDePaso.Distancia(puntointerseccion); int tamaño = (int)dist.ToDouble(); if (tamaño == 0) { tamaño = 5; } // Pintar el plano ventanagrafica.PintarPlano(plano.VectorPerpendicular, puntointerseccion, 50 + tamaño, Color.Chartreuse); // Pintar el punto ventanagrafica.PintarPunto(punto, 10, true, Color.Coral); if (!directa) { btAjustar.PerformClick(); } btIsometrica.PerformClick(); if (directa) { ContinuarResolucion(); } paso = 1; }