|
@@ -4,12 +4,12 @@
|
4
|
4
|
![main2.png](images/main2.png)
|
5
|
5
|
![main3.png](images/main3.png)
|
6
|
6
|
|
7
|
|
-[Verano 2016 - Ive]
|
|
7
|
+[Verano 2016 - Ive - Coralys]
|
8
|
8
|
|
9
|
|
-Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*. En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados para producir patrones y mosaicos.
|
|
9
|
+Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*. En la experiencia de laboratorio de hoy, practicarás el uso de ciclos anidados para producir patrones y mosaicos.
|
10
|
10
|
|
11
|
11
|
|
12
|
|
-##Objetivos:
|
|
12
|
+## Objetivos:
|
13
|
13
|
|
14
|
14
|
1. Practicar el uso de estructuras de repetición al construir patrones y mosaicos.
|
15
|
15
|
|
|
@@ -17,7 +17,7 @@ Una de las ventajas de utilizar programas de computadoras es que podemos realiza
|
17
|
17
|
|
18
|
18
|
Esta experiencia de laboratorio es una adaptación de https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-2.
|
19
|
19
|
|
20
|
|
-##Pre-Lab:
|
|
20
|
+## Pre-Lab:
|
21
|
21
|
|
22
|
22
|
Antes de llegar al laboratorio debes haber:
|
23
|
23
|
|
|
@@ -31,14 +31,14 @@ Antes de llegar al laboratorio debes haber:
|
31
|
31
|
|
32
|
32
|
c. rotar teselaciones.
|
33
|
33
|
|
34
|
|
-3. Tomado el quiz Pre-Lab que se encuentra en Moodle.
|
|
34
|
+3. Tomado el quiz Pre-Lab, disponible en Moodle.
|
35
|
35
|
|
36
|
36
|
---
|
37
|
37
|
|
38
|
38
|
---
|
39
|
39
|
|
40
|
40
|
|
41
|
|
-##Teselaciones
|
|
41
|
+## Teselaciones
|
42
|
42
|
|
43
|
43
|
Una *teselación* ("tessellation" o "tilling") es un mosaico que se crea repitiendo una figura para cubrir una superficie sin dejar huecos y sin solapamientos. Una *teselación regular* es una figura que se forma repitiendo un mismo *polígono regular*, como triángulos, cuadrados o hexágonos. (Un polígono regular es un polígono cuyos lados son congruentes y en el que los ángulos que forman los lados son congruentes.)
|
44
|
44
|
|
|
@@ -51,9 +51,9 @@ Una *teselación* ("tessellation" o "tilling") es un mosaico que se crea repitie
|
51
|
51
|
---
|
52
|
52
|
|
53
|
53
|
|
54
|
|
-##Biblioteca
|
|
54
|
+## Biblioteca
|
55
|
55
|
|
56
|
|
-El proyecto `Tessellations.pro` disponible en `http://bitbucket.org/eip-uprrp/repetitions1-tessellations` contiene la clase `Tessellation`, que es una abstracción de una teselación con cuadrados, y la clase `DrawingWindow`. El código de muestra en la Figura 2 crea un `DrawingWindow` llamado `w`, un `Tessellation` llamado `t` y coloca la teselación en la posición (50,100). Nota que el método `addTessellation` de la clase `DrawingWindow` debe ser invocado para que la teselación se dibuje.
|
|
56
|
+El proyecto `Tessellations.pro` disponible en `http://bitbucket.org/eip-uprrp/repetitions1-tessellations` contiene la clase `Tessellation`, que es una abstracción de una teselación con cuadrados, y la clase `DrawingWindow`. El código de muestra en la Figura 2 crea un `DrawingWindow` llamado `w`, un `Tessellation` llamado `t` y coloca la teselación en la posición (50,100). Nota que el método `addTessellation` de la clase `DrawingWindow` debe ser invocado para que la teselación se dibuje.
|
57
|
57
|
|
58
|
58
|
---
|
59
|
59
|
|
|
@@ -88,7 +88,7 @@ La ventana que se obtiene con el código de la Figura 2 es similar a la ventana
|
88
|
88
|
|
89
|
89
|
---
|
90
|
90
|
|
91
|
|
-**Ejemplo 1.** El código de la Figura 4 contiene una función `foo` para dibujar cuatro teselaciones en las posiciones (0,0), (50,50), (100,100), and (150,150), con rotaciones de la figura original de $$0^\circ, 90^\circ, 180^\circ y 270^\circ$$ (a favor de las manecillas del reloj).
|
|
91
|
+**Ejemplo 1.** El código de la Figura 4 contiene una función `foo` para dibujar cuatro teselaciones en las posiciones (0,0), (50,50), (100,100), y (150,150), con rotaciones de la figura original de $$0^\circ, 90^\circ, 180^\circ y 270^\circ$$ (a favor de las manecillas del reloj).
|
92
|
92
|
|
93
|
93
|
---
|
94
|
94
|
|
|
@@ -120,7 +120,7 @@ int main(int argc, char *argv[]) {
|
120
|
120
|
|
121
|
121
|
---
|
122
|
122
|
|
123
|
|
-Observa como la función `foo` necesita recibir una referencia al objeto `w` de la clase `DrawingWindow` ya que está invocando el método `addTessellation` de esta clase en cada iteración del ciclo. La figura que se obtiene es similar a la de la Figura 5.
|
|
123
|
+Observa cómo la función `foo` necesita recibir una referencia al objeto `w` de la clase `DrawingWindow` ya que está invocando el método `addTessellation` de esta clase en cada iteración del ciclo. La figura que se obtiene es similar a la de la Figura 5.
|
124
|
124
|
|
125
|
125
|
---
|
126
|
126
|
|
|
@@ -149,7 +149,7 @@ int fah(DrawingWindow &w) {
|
149
|
149
|
}
|
150
|
150
|
```
|
151
|
151
|
|
152
|
|
-**Figura 6.** Código de la función `fah` que utiliza ciclos anidados para dibujar cuatro teselaciones.
|
|
152
|
+**Figura 6.** Código de la función `fah` que utiliza ciclos anidados para dibujar cuatro teselaciones.
|
153
|
153
|
|
154
|
154
|
La figura que se obtiene es similar a la de la Figura 7.
|
155
|
155
|
|
|
@@ -183,24 +183,23 @@ En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados p
|
183
|
183
|
|
184
|
184
|
#### Instrucciones:
|
185
|
185
|
|
186
|
|
-
|
187
|
186
|
1. Carga a `QtCreator` el proyecto `Tessellations`. Hay dos maneras de hacer esto:
|
188
|
187
|
|
189
|
188
|
* Utilizando la máquina virtual: Haz doble “click” en el archivo `Tessellations.pro` que se encuentra en el directorio `/home/eip/labs/repetitions-tessellations` de la máquina virtual.
|
190
|
189
|
* Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/repetitions-tessellations` para descargar la carpeta `repetitions-tessellations` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `Tessellations.pro`.
|
191
|
190
|
|
192
|
|
-2. El proyecto `Tessellations.pro` contiene las clases `Tessellation` y `DrawingWindow` y la función `foo`. Configura el proyecto y corre el programa. Debes observar una pantalla parecida a la Figura 5.
|
|
191
|
+2. El proyecto `Tessellations.pro` contiene las clases `Tessellation` y `DrawingWindow` y la función `foo`. Configura el proyecto y ejecuta el programa marcando la flecha verde en el menú de la izquierda de la ventana de Qt Creator. Debes observar una pantalla parecida a la Figura 5.
|
193
|
192
|
|
194
|
193
|
Esta figura se crea con la función `foo` mostrada en la Figura 4 y explicada en el Ejemplo 1. La función `foo` es invocada desde `main()`. En esta experiencia de laboratorio solo estarás haciendo cambios a la función `main()`.
|
195
|
194
|
|
196
|
|
- Estudia nuevamente la función `foo` y nota la creación de los objetos de la clase `Tessellations`, el uso del método `setRotation` y el método `move` para colocar la teselación en la posición deseada. Nota cómo las instrucciones en el ciclo `for` de la función utilizan el contador del ciclo para determinar la posición del cuadrado y como se incrementa el valor de la rotación. También nota que necesitas utilizar el método `addTessellation` para que la teselación se añada en la ventana `w`.
|
|
195
|
+ Estudia nuevamente la función `foo` y nota la creación de los objetos de la clase `Tessellations`, el uso del método `setRotation` y el método `move` para colocar la teselación en la posición deseada. Nota cómo las instrucciones en el ciclo `for` de la función utilizan el contador del ciclo para determinar la posición del cuadrado y cómo se incrementa el valor de la rotación. También nota que necesitas utilizar el método `addTessellation` para que la teselación se añada en la ventana `w`.
|
197
|
196
|
|
198
|
197
|
|
199
|
198
|
### Ejercicio 2 - Crear función y teselación `herringbone`
|
200
|
199
|
|
201
|
200
|
#### Instrucciones:
|
202
|
201
|
|
203
|
|
-1. Crea una función `herringbone` que produzca la teselación de la Figura 8. El tamaño de la ventana es 400x400. El tamaño de cada cuadrado de la teselación es su tamaño por defecto: 50x50.
|
|
202
|
+1. Crea una función `herringbone` que produzca la teselación de la Figura 8. El tamaño de la ventana es 400x400. El tamaño de cada cuadrado de la teselación es su tamaño por defecto: 50x50.
|
204
|
203
|
|
205
|
204
|
---
|
206
|
205
|
|
|
@@ -258,7 +257,7 @@ En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados p
|
258
|
257
|
|
259
|
258
|
## Entregas
|
260
|
259
|
|
261
|
|
-Utiliza "Entrega" en Moodle para entregar el archivo `main.cpp` que contiene las funciones `herringbone`, `zigzag` y `diamond` que creaste en los Ejercicios 2, 3 y 4 y sus invocaciones. Recuerda utilizar buenas prácticas de programación, incluir el nombre de los programadores y documentar tu programa.
|
|
260
|
+Utiliza "Entrega" en Moodle para entregar el archivo `main.cpp` que contiene las funciones `herringbone`, `zigzag` y `diamond` que creaste en los Ejercicios 2, 3 y 4 y sus invocaciones. Recuerda utilizar buenas prácticas de programación, al incluir el nombre de los programadores y documentar tu programa.
|
262
|
261
|
|
263
|
262
|
---
|
264
|
263
|
|