/// <summary> /// Dibuja la curva que representa el perfil del terreno. /// </summary> /// <param name="puntos">Puntos de control</param> public static void DibujarTerreno2D(IList<PuntoFlotante> puntos) { // Dibujo el lazo punteado que une los puntos. PlotHelper.DibujarLazoPunteado(puntos); // Dibujo los puntos para denotar su ubicación. foreach (PuntoFlotante punto in puntos) { PlotHelper.DibujarPunto(punto); } // Dibujo la curva que se forma a partir de los puntos. if (puntos.Count > 2) { CurvaBzierSegmentosCubicos curvaCamino = new CurvaBzierSegmentosCubicos(puntos); Gl.glDisable(Gl.GL_LIGHTING); Gl.glBegin(Gl.GL_LINE_STRIP); Gl.glPushMatrix(); Gl.glColor3d(0.5, 0.5, 0); foreach (PuntoFlotante punto in curvaCamino.GetPuntosDiscretos(0.001)) { Gl.glVertex2d(punto.X, punto.Y); } Gl.glPopMatrix(); Gl.glEnd(); Gl.glEnable(Gl.GL_LIGHTING); Gl.glColor3d(1, 1, 1); } }
public void CrearCamino() { // Se obtienen los puntos seleccionados por el usuario IList <PuntoFlotante> puntosPoligonoControlBzier = this.GetPuntosBzier(); // Se escalan los puntos a las coordenadas de mundo, para poder controlar el paso de discretisación puntosPoligonoControlBzier = this.EscalarPuntosVentanitas(puntosPoligonoControlBzier, true); // Se crea la curva CurvaBzierSegmentosCubicos curva = new CurvaBzierSegmentosCubicos(puntosPoligonoControlBzier); // Se obtienen los puntos discretos de la curva this.puntosCamino = curva.GetPuntosDiscretos(0.01); }
public void CrearCamino() { // Se obtienen los puntos seleccionados por el usuario IList<PuntoFlotante> puntosPoligonoControlBzier = this.GetPuntosBzier(); // Se escalan los puntos a las coordenadas de mundo, para poder controlar el paso de discretisación puntosPoligonoControlBzier = this.EscalarPuntosVentanitas(puntosPoligonoControlBzier, true); // Se crea la curva CurvaBzierSegmentosCubicos curva = new CurvaBzierSegmentosCubicos(puntosPoligonoControlBzier); // Se obtienen los puntos discretos de la curva this.puntosCamino = curva.GetPuntosDiscretos(0.01); }