|
@@ -4,7 +4,7 @@
|
4
|
4
|
![main2.png](images/main2.png)
|
5
|
5
|
![main3.png](images/main3-small.png)
|
6
|
6
|
|
7
|
|
-[Verano 2016 - Ive]
|
|
7
|
+[Verano 2016 - Ive - Tatiana]
|
8
|
8
|
|
9
|
9
|
La recursión es una técnica muy utilizada en programación. Con esta técnica se resuelven problemas resolviendo un problema similar pero para casos más pequeños. Podemos construir conjuntos de objetos o procesos utilizando *reglas recursivas* y *valores iniciales*. Las *funciones recursivas* son funciones que se auto-invocan, utilizando cada vez conjuntos o elementos más pequeños, hasta llegar a un punto en donde se utiliza la condición inicial en lugar de auto-invocarse. En esta experiencia de laboratorio implementarás algunas herramientas para dibujar y practicarás el uso de funciones recursivas para rellenar de color algunas figuras.
|
10
|
10
|
|
|
@@ -24,7 +24,7 @@ Antes de llegar al laboratorio debes haber:
|
24
|
24
|
|
25
|
25
|
2. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
26
|
26
|
|
27
|
|
-3. Tomado el quiz Pre-Lab que se encuentra en Moodle.
|
|
27
|
+3. Tomado el quiz Pre-Lab, disponible en Moodle.
|
28
|
28
|
|
29
|
29
|
|
30
|
30
|
|
|
@@ -36,9 +36,9 @@ Antes de llegar al laboratorio debes haber:
|
36
|
36
|
## Aplicaciones para dibujar
|
37
|
37
|
|
38
|
38
|
|
39
|
|
-Probablemente muchos usuarios del sistema operativo Windows (¡quizás todos!) han usado el programa *Paint*, que es una aplicación simple para dibujar. En ese programado, al igual que en muchos otros programados para dibujar, hay varias herramientas (por ejemplo el lápiz, el cubo de pintura, la línea) que le permiten al usuario dibujar en el área de distintas maneras.
|
|
39
|
+Probablemente muchos usuarios del sistema operativo Windows (¡quizás todos!) han usado el programa *Paint*, que es una aplicación simple para dibujar. En ese programa, al igual que en muchos otros programas para dibujar, hay varias herramientas (por ejemplo el lápiz, el cubo de pintura, la línea) que le permiten al usuario dibujar en el área de distintas maneras.
|
40
|
40
|
|
41
|
|
-En esta experiencia de laboratorio haremos funcionar algunas de esas herramientas: cuadrado, círculo, triángulo, y algunas líneas especiales ... ¡no te asustes!, lo haremos de una manera simple.
|
|
41
|
+En esta experiencia de laboratorio haremos que funcionen algunas de esas herramientas: cuadrado, círculo, triángulo, y algunas líneas especiales ... ¡no te asustes!, lo haremos de una manera simple.
|
42
|
42
|
|
43
|
43
|
El dibujo se hará sobre una cuadrilla. Las herramientas se utilizarán marcando cualquier celda en la cuadrilla y, desde ese punto, las celdas necesarias para hacer la figura se pintarán. Por ejemplo, si seleccionamos la herramienta de línea vertical y marcamos la celda en posición *(2,3)*, una línea vertical se dibujará en todas las celdas de la columna 2. Esto es, se marcarán todas las celdas en posición $(2,y)$ para todas las $y$ de la cuadrilla.
|
44
|
44
|
|
|
@@ -51,7 +51,7 @@ El dibujo se hará sobre una cuadrilla. Las herramientas se utilizarán marcando
|
51
|
51
|
|
52
|
52
|
## Coordenadas en `Qt`:
|
53
|
53
|
|
54
|
|
-* El sistema de coordenadas en `Qt` funciona un poco diferente, como muestra la Figura 1. Las entradas van de izquierda a derecha, desde 0 hasta un ancho máximo, y desde arriba hasta abajo, desde 0 hasta una altura máxima.
|
|
54
|
+* El sistema de coordenadas en `Qt` funciona un poco diferente, como muestra la Figura 1. Las entradas van de izquierda a derecha, desde 0 hasta un ancho máximo, y desde arriba hasta abajo, desde 0 hasta una altura máxima.
|
55
|
55
|
|
56
|
56
|
![ejemplo.png](images/ejemplo.png)
|
57
|
57
|
|
|
@@ -73,7 +73,7 @@ Para este proyecto necesitarás utilizar las funciones de `QtGlobal` para la imp
|
73
|
73
|
|
74
|
74
|
* `int qFloor(qreal v)` // Devuelve el "piso" del valor $v$.
|
75
|
75
|
* `qreal qSqrt(qreal v)` // Devuelve la raíz cuadrada del valor $v$.
|
76
|
|
-* `qreal qPow(qreal x, qreal y)` // Devuelve el valor de $x$ elevado a la potencia $y$.
|
|
76
|
+* `qreal qPow(qreal x, qreal y)` // Devuelve el valor de $x$ elevado a la potencia de $y$.
|
77
|
77
|
|
78
|
78
|
También necesitarás utilizar la función que pinta en la cuadrilla:
|
79
|
79
|
|
|
@@ -142,7 +142,7 @@ Esta función debe trabajar de manera similar a la función `RowMajorFill` pero
|
142
|
142
|
|
143
|
143
|
##### `DiagonalLeft`
|
144
|
144
|
|
145
|
|
-Esta función debe trabajar de manera similar a la función `RowMajorFill` pero produce una línea diagonal desde la izquierda superior hasta la derecha inferior. La Figura 4 ilustra su comportamiento.
|
|
145
|
+Esta función debe trabajar de manera similar a la función `RowMajorFill` pero produce una línea diagonal desde la esquina izquierda superior hasta la esquina derecha inferior. La Figura 4 ilustra su comportamiento.
|
146
|
146
|
|
147
|
147
|
|
148
|
148
|
|
|
@@ -156,7 +156,7 @@ Esta función debe trabajar de manera similar a la función `RowMajorFill` pero
|
156
|
156
|
|
157
|
157
|
##### `DiagonalRight`
|
158
|
158
|
|
159
|
|
-Esta función debe trabajar de manera similar a la función `DiagonalLeft` pero produce una línea diagonal desde la derecha superior hasta la izquierda inferior. La Figura 5 ilustra su comportamiento.
|
|
159
|
+Esta función debe trabajar de manera similar a la función `DiagonalLeft` pero produce una línea diagonal desde la esquina derecha superior hasta la esquina izquierda inferior. La Figura 5 ilustra su comportamiento.
|
160
|
160
|
|
161
|
161
|
|
162
|
162
|
|
|
@@ -165,7 +165,7 @@ Esta función debe trabajar de manera similar a la función `DiagonalLeft` pero
|
165
|
165
|
| ![](images/diagLeft00-small.png) | ![](images/diagLeft01-small.png) | ![](images/diagRight02-small.png)|
|
166
|
166
|
|
167
|
167
|
|
168
|
|
-**Figura 5** - (a) Un dibujo con trasfondo blanco y puntos rojos. (b) Cuando el usuario marca el botón de línea diagonal derecha (`DiagonalRight`) y marca la celda mostrada, (c) se dibuja una línea diagonal derecha que se expande hacia arriba a la derecha y hacia abajo a la izquierda de la celda marcada, hasta que se encuantra una celda con un color diferente al color de trasfondo.
|
|
168
|
+**Figura 5** - (a) Un dibujo con trasfondo blanco y puntos rojos. (b) Cuando el usuario marca el botón de línea diagonal derecha (`DiagonalRight`) y marca la celda mostrada, (c) se dibuja una línea diagonal derecha que se expande hacia arriba a la derecha y hacia abajo a la izquierda de la celda marcada, hasta que se encuentra una celda con un color diferente al color de trasfondo.
|
169
|
169
|
|
170
|
170
|
|
171
|
171
|
### Ejercicio 2: Implementar las funciones para hacer funcionar los botones de dibujar cuadrados, triángulos y círculos.
|
|
@@ -239,13 +239,13 @@ En este ejercicio implementarás la funcionalidad para rellenar de color las fig
|
239
|
239
|
|
240
|
240
|
```
|
241
|
241
|
Relleno (celda, color-buscado, color-reemplazo):
|
242
|
|
- 1. Si color-buscado es igual al color-reemplazo, return.
|
|
242
|
+ 1. Si el color-buscado es igual al color-reemplazo, return.
|
243
|
243
|
2. Si el color de celda no es igual al color-buscado, return.
|
244
|
244
|
3. Ajusta el color de celda al color-reemplazo.
|
245
|
|
- 4. Ejecuta Relleno (un lugar a la izquerda de celda, color-buscado, color-reemplazo).
|
246
|
|
- Ejecuta Relleno (un lugar a la derecha de celda, color-buscado, color-reemplazo).
|
247
|
|
- Ejecuta Relleno (un lugar arriba de celda, color-buscado, color-reemplazo).
|
248
|
|
- Ejecuta Relleno (un lugar abajo de celda, color-buscado, color-reemplazo).
|
|
245
|
+ 4. Ejecuta Relleno (un lugar a la izquierda de celda, color-buscado, color-reemplazo).
|
|
246
|
+ Ejecuta Relleno (un lugar a la derecha de celda, color-buscado, color-reemplazo).
|
|
247
|
+ Ejecuta Relleno (un lugar arriba de celda, color-buscado, color-reemplazo).
|
|
248
|
+ Ejecuta Relleno (un lugar abajo de celda, color-buscado, color-reemplazo).
|
249
|
249
|
5. Return.
|
250
|
250
|
|
251
|
251
|
```
|
|
@@ -292,3 +292,6 @@ Utiliza "Entrega" en Moodle para entregar el archivo `tools.cpp` con las funcion
|
292
|
292
|
|
293
|
293
|
----
|
294
|
294
|
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|