Imagen Escrita: Mapeo de Curvas
De Casiopea
Título | Mapeo y Normalización |
---|---|
Tipo de Proyecto | Proyecto de Curso |
Palabras Clave | tarea 3 |
Período | 2012- |
Del Curso | Imagen Escrita 2012, |
Carreras | Arquitectura, Diseño Gráfico"Diseño Gráfico" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property. |
Alumno(s) | Aalumnus Exemplaris |
Profesor | Herbert Spencer |
float y, n; // declaro 2 floats: 'y' para el f(x) y 'n' para el valor normalizado float m; // 'm' será utilizado como el valor mapeado a las coordenadas del dibujo void setup() { size(500, 500); } /* función propia que dibuja una grilla y que recibe 2 parámetros las divisiones en 'x' y las divisiones en 'y' como números enteros (int) */ void grilla(int divsX, int divsY) { stroke(240); // color del trazo, un gris muy claro float xSpacer = width/(float)divsX; // se calcula el ancho en 'x' a partir de las divisiones float ySpacer = height/(float)divsY; // lo mismo en 'y' for (float y = ySpacer; y < height; y +=ySpacer) { line(0, y, width, y); // se dibujan las líneas horizontales } for (float x = xSpacer; x < width; x +=xSpacer) { line(x, 0, x, height); // se dibujan las líneas verticales } } /* Otra función propia, que hace cruces. Esta función recibe las coordenadas y el tamaño en que se dibujará la cruz */ void cruz(float x, float y, float tam) { float t = tam/2; stroke(240, 20, 20, 50); line(x-t, y-t, x+t, y+t); line(x-t, y+t, x+t, y-t); } void draw() { background(255); // fondo blanco grilla(40, 20); // haga la grilla con 40 divisiones en 'x' y 20 en 'y' /* calculo, para cada pixel en 'x' (del ancho)... */ for (int x = 0; x < width; x++) { n = norm(x, 0, width); // se normaliza el en el ancho m = map(mouseX, 0, width, 1, 40); // mapeo la posición horizontal del mouse entre 1 y 40 y = pow(n, m) * height; // calculo la altura en: ('n' elevado a 'm') multiplicado por el alto (500) cruz(x, y, 5); cruz(x, height-y, 5); } println(m); // imprime el valor mapeado en la consola }