|
@@ -4,6 +4,8 @@
|
4
|
4
|
![main2.png](images/main2.png)
|
5
|
5
|
![main3.png](images/main3.png)
|
6
|
6
|
|
|
7
|
+[Verano 2016 - Ive]
|
|
8
|
+
|
7
|
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.
|
8
|
10
|
|
9
|
11
|
|
|
@@ -100,7 +102,6 @@ int foo(DrawingWindow &w) {
|
100
|
102
|
w.addTessellation(t);
|
101
|
103
|
rot += 90;
|
102
|
104
|
}
|
103
|
|
-
|
104
|
105
|
}
|
105
|
106
|
|
106
|
107
|
int main(int argc, char *argv[]) {
|
|
@@ -137,15 +138,14 @@ Observa como la función `foo` necesita recibir una referencia al objeto `w` de
|
137
|
138
|
int fah(DrawingWindow &w) {
|
138
|
139
|
int rot = 0;
|
139
|
140
|
for (int i = 0; i < 4; i++) {
|
140
|
|
- for (int j = 0; j < 4; j++) {
|
141
|
|
-Tessellation t;
|
142
|
|
- t.move(i * 50, j * 50);
|
143
|
|
-t.setRotation(rot);
|
144
|
|
- w.addTessellation(t);
|
145
|
|
- }
|
146
|
|
- rot += 90;
|
|
141
|
+ for (int j = 0; j < 4; j++) {
|
|
142
|
+ Tessellation t;
|
|
143
|
+ t.move(i * 50, j * 50);
|
|
144
|
+ t.setRotation(rot);
|
|
145
|
+ w.addTessellation(t);
|
|
146
|
+ }
|
|
147
|
+ rot += 90;
|
147
|
148
|
}
|
148
|
|
-
|
149
|
149
|
}
|
150
|
150
|
```
|
151
|
151
|
|
|
@@ -159,17 +159,15 @@ La figura que se obtiene es similar a la de la Figura 7.
|
159
|
159
|
|
160
|
160
|
**Figura 7.** Teselaciones dibujadas por la función `fah` en el código de la Figura 6.
|
161
|
161
|
|
162
|
|
----
|
163
|
|
-
|
164
|
162
|
|
165
|
163
|
---
|
166
|
164
|
|
167
|
165
|
---
|
168
|
166
|
|
169
|
|
-!INCLUDE "../../eip-diagnostic/tesselations/es/diag-tesselations-01.html"
|
|
167
|
+!INCLUDE "../../eip-diagnostic/tesselations/es/diag-tesselations-01.html"
|
170
|
168
|
<br>
|
171
|
169
|
|
172
|
|
-!INCLUDE "../../eip-diagnostic/tesselations/es/diag-tesselations-02.html"
|
|
170
|
+!INCLUDE "../../eip-diagnostic/tesselations/es/diag-tesselations-02.html"
|
173
|
171
|
<br>
|
174
|
172
|
|
175
|
173
|
---
|
|
@@ -177,17 +175,20 @@ La figura que se obtiene es similar a la de la Figura 7.
|
177
|
175
|
---
|
178
|
176
|
|
179
|
177
|
|
180
|
|
-##Sesión de laboratorio:
|
|
178
|
+## Sesión de laboratorio:
|
181
|
179
|
|
182
|
180
|
En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados para crear distintas teselaciones.
|
183
|
181
|
|
184
|
|
-###Ejercicio 1: Estudiar ciclo que produce teselaciones
|
|
182
|
+### Ejercicio 1 - Estudiar el ciclo que produce teselaciones
|
|
183
|
+
|
|
184
|
+#### Instrucciones:
|
185
|
185
|
|
186
|
|
-####Instrucciones
|
187
|
186
|
|
|
187
|
+1. Carga a `QtCreator` el proyecto `Tessellations`. Hay dos maneras de hacer esto:
|
|
188
|
+
|
|
189
|
+ * 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
|
+ * 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`.
|
188
|
191
|
|
189
|
|
-1. Carga a Qt el proyecto `Tessellations` haciendo doble "click" en el archivo `Tessellations.pro` en el directorio `Documents/eip/Repetitions-Tessellations` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/repetitions-tessellations` para descargar la carpeta `Repetitions-Tessellations` a tu computadora.
|
190
|
|
-
|
191
|
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.
|
192
|
193
|
|
193
|
194
|
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,9 +196,9 @@ En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados p
|
195
|
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`.
|
196
|
197
|
|
197
|
198
|
|
198
|
|
-###Ejercicio 2: Crear función y teselación `herringbone`
|
|
199
|
+### Ejercicio 2 - Crear función y teselación `herringbone`
|
199
|
200
|
|
200
|
|
-####Instrucciones
|
|
201
|
+#### Instrucciones:
|
201
|
202
|
|
202
|
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.
|
203
|
204
|
|
|
@@ -213,9 +214,9 @@ En la experiencia de laboratorio de hoy practicarás el uso de ciclos anidados p
|
213
|
214
|
|
214
|
215
|
3. Invoca la función `herringbone` desde `main()` y corre tu programa para que veas la teselación que creaste.
|
215
|
216
|
|
216
|
|
-###Ejercicio 3: Crear función y teselación `zigzag`
|
|
217
|
+### Ejercicio 3 - Crear función y teselación `zigzag`
|
217
|
218
|
|
218
|
|
-####Instrucciones
|
|
219
|
+#### Instrucciones:
|
219
|
220
|
|
220
|
221
|
1. Crea una función `zigzag` que produzca la teselación de la Figura 9.
|
221
|
222
|
|