Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Vídeo 7. Definición de funciones - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Hasta ahora hemos "utilizado" funciones. Pero, también las podemos
definir o crear. Este vídeo muestra cómo hacerlo. Además, muestra un programa de ejemplo. Y muy importante, indica
las funciones que debemos definir para utilizar Processing en "modo dinámico".
definir o crear. Este vídeo muestra cómo hacerlo. Además, muestra un programa de ejemplo. Y muy importante, indica
las funciones que debemos definir para utilizar Processing en "modo dinámico".
Hola, muy buenas. En este video tutorial hablaremos sobre la definición o creación de funciones.
00:00:00
Hasta ahora hemos utilizado las funciones del API de Processing, pero también podemos crearnos nosotros funciones
00:00:07
que podremos utilizar en nuestro código o incluso el sistema puede llamar de manera automática.
00:00:15
¿Cómo creamos o definimos funciones? Lo hacemos de esta forma.
00:00:24
Lo primero que ponemos es el tipo de datos que devuelve la función, si es que la función devuelve un dato, por ejemplo si nos hacemos una función para calcular la distancia entre dos puntos tendrá que devolver un dato numérico, pues tendríamos que representarlo en esta primera palabra, sería una palabra reservada que corresponde con el dato numérico o bien una clase, pero eso ya lo veremos más adelante.
00:00:28
A continuación pondremos el nombre de la función. El nombre seguirá las mismas reglas que utilizamos para las variables. Tienen que estar en minúscula, son varias palabras, van juntas y la primera letra de las segundas, terceras, cuartas, etc. palabras van en mayúscula, etc.
00:00:55
A continuación, entre paréntesis, se pondrán los parámetros que necesita la función.
00:01:14
Si no necesita parámetros, pues directamente se queda en blanco lo que hay entre los paréntesis.
00:01:24
Cuando se emplean parámetros, se tienen que definir los parámetros como se definen las variables.
00:01:29
El tipo de dato del parámetro y a continuación el nombre del parámetro.
00:01:36
Si hay más, pues pones una coma, el tipo de datos del segundo parámetro y el nombre del segundo parámetro
00:01:40
Y así sucesivamente con todos los parámetros que tuviera la función
00:01:46
Y por último, en tres llaves se pondría el código, el conjunto de instrucciones, de pasos que hace toda esa función
00:01:51
Bueno, os recuerdo que todo el código que haya en tres llaves se le llama bloque de código
00:02:00
Cuando una función no devuelve ningún dato, hace cosas pero no tiene por qué devolver ningún dato
00:02:07
Como han sido por ejemplo las funciones que hemos utilizado como circle, dibujo un círculo pero no devuelve ningún valor
00:02:20
Cuando tenemos funciones de este tipo, utilizamos como tipo devuelto la palabra reservada void
00:02:27
Cuando queremos devolver un dato, cuando tenemos una función que sí que devuelve un valor
00:02:34
Para proceder a devolver ese valor, utilizamos la palabra reservada retan
00:02:41
Y a continuación el valor que queremos devolver
00:02:48
Cuando ejecutamos esta sentencia, retan, y el valor que queremos devolver
00:02:50
Se termina la función, sale de ahí la función
00:02:56
Si no, la función acabaría cuando llegue a la última línea de código que hay dentro del bloque de código correspondiente a la función.
00:02:59
Vamos a ver un par de ejemplos de funciones.
00:03:08
Empezamos con dos funciones muy importantes en Processing, la función Setup y la función Draw.
00:03:12
Hasta ahora hemos estado utilizando Processing de manera estática, pintábamos una serie de cosas y se acababa nuestro programa.
00:03:20
Sin embargo, cuando nosotros ponemos estas funciones, decimos que ya utilizamos Processing de una manera dinámica
00:03:26
¿Por qué? Porque lo que hace el sistema cuando tenemos estas funciones, la primera que va a ejecutar es la función Setup
00:03:34
Todo lo que haya dentro de las llaves de Setup, ahora mismo está vacío, pero la iremos dando contenido, será lo primero que se ejecute
00:03:45
Y solo lo hará una vez
00:03:52
Cuando se ejecute todo lo que haya dentro de la función setup
00:03:54
Se ejecutará lo que hay dentro de la función draw
00:03:57
De manera repetitiva
00:04:00
Es decir, empezará por la primera línea
00:04:04
Irá ejecutando todas las líneas que haya dentro de ese bloque de código de la función
00:04:08
Y cuando termine, volverá a ejecutarse otra vez la función draw
00:04:13
De manera seguida, una vez detrás de otra
00:04:17
Como si fuera un bucle infinito
00:04:21
Bueno, vamos a ejecutar el programa tal y como está. Hemos definido las funciones, pero no tienen contenido. Lo único que se hace es abrir una ventanita como se abría cuando no teníamos ningún código.
00:04:23
Dentro de la función setup se suele utilizar la función que ya conocemos side
00:04:38
Fijaros que en este caso no estoy definiendo una función sino lo que estoy haciendo es llamarla o ejecutarla
00:04:45
Side es una función del API de processing y la estoy utilizando dentro de la función que me he definido
00:04:51
La función setup
00:05:01
Bueno si ejecutamos esto vemos que efectivamente se nos abre una pantalla más grande
00:05:02
Dentro de la función draw, como ejemplo, vamos a dibujar un círculo. Vamos a dibujar un círculo con coordenada 100, la coordenada y 200 y el tamaño 50.
00:05:08
Bueno, esta función draw se está ejecutando una vez tras otra
00:05:26
Como el círculo lo tengo siempre en la misma posición
00:05:33
Parece que solo se ejecuta una vez
00:05:37
Pero realmente esto está continuamente ejecutándose
00:05:39
De hecho vamos a hacer una pequeña modificación para comprobar que es así
00:05:42
En lugar de poner una coordenada x estática
00:05:46
No vamos a crear una variable de tipo numérico
00:05:51
De tipo int, por ejemplo
00:05:55
que voy a llamar coreX, de coordenada X, que va a empezar con un valor de 100 y aquí vamos a hacer lo siguiente, vamos a sustituir ese valor por el valor de la variable
00:05:56
y después de pintarlo vamos a incrementar la variable core en 1. Una manera de hacer esto es utilizar el operador más igual y poniendo el número que queremos sumar.
00:06:13
Esta expresión lo que está haciendo es que está sumando el valor 1, el que tengo aquí a la derecha, a la variable corX.
00:06:28
Bueno, si draw se está ejecutando de manera repetida, lo que va a ocasionar es que ese círculo se desplace hacia la derecha.
00:06:36
Vamos a comprobarlo.
00:06:44
Bueno, ahí lo tenemos.
00:06:48
Efectivamente, la función draw se repite una vez tras otra y el círculo se desplaza hacia la derecha.
00:06:49
Si queremos borrar el fondo, es decir, que no aparezca un círculo encima del otro, sino solo un círculo, podemos utilizar la función background.
00:06:57
Si le ponemos el valor de 200, me pintaría un color gris. Ahí lo tenemos.
00:07:12
Bueno, estas dos funciones hemos dicho que son muy especiales y, de hecho, si nos vamos a la referencia del lenguaje, las vamos a encontrar.
00:07:25
Aquí donde pone estructura en este bloque vamos a tener por una parte la función draw, aquí la tenemos y la función setup. Como siempre podemos entrar en cualquiera
00:07:33
de ellas y vamos a ver ejemplos en los que aparecen estas funciones. Bueno, estas dos funciones son muy especiales pero podemos hacer otro tipo de funciones.
00:07:48
De hecho vamos a crearnos una función que nos permita dibujar un Mickey Mouse en cualquier parte de la pantalla de forma muy sencilla
00:07:58
Bueno, vamos a llamar a la función Mickey Mouse, no nos vamos a complicar
00:08:05
Como es una función que va a dibujar algo, un Mickey Mouse, no va a devolver ningún valor
00:08:09
Decimos que el tipo de vuelta es void o lo que es lo mismo, ninguno
00:08:14
A continuación damos nombre a nuestra función y le indicamos los parámetros que va a tener esta función
00:08:19
Bueno, esta función va a tener tres parámetros. El primero será de tipo numérico decimal, vamos a utilizar el float, y le vamos a llamar coreX.
00:08:29
El segundo también será de tipo float y le vamos a llamar coreY. Y el tercero también será de tipo float y le vamos a llamar escala.
00:08:44
Bueno, esa coma nos sobra, abrimos llaves, cerramos llaves
00:09:00
Por cierto, antes de continuar vamos a quitar la definición de esta variable
00:09:07
Que ya no la vamos a necesitar
00:09:13
Y vamos a quitar también esta línea de código que ya no la vamos a necesitar
00:09:15
Para pintar el Mickey Mouse vamos a ayudarnos ya de un programita que tenemos hecho
00:09:21
Vamos a ir a buscar donde tenemos ya dibujado un Mickey Mouse
00:09:26
la versión 2 de este programita, pues aquí tenía una serie de líneas de código que me pintaban la cara de un Mickey Mouse.
00:09:31
Vamos a cogerla y vamos a copiarlas. Y nos las vamos a llevar dentro de la función.
00:09:40
Bueno, cosas importantes. Siempre que se abre una llave, que estamos en un bloque de código,
00:09:50
Lo lógico es intentar hacia la derecha el código para que se vea bien. Por ejemplo, esto funcionaría pero no queda muy bien. Como estas tres funciones están todas ellas dentro de este bloque de código, además fijaros como cuando me pongo en una llave se selecciona la de cierre, pues lo lógico es que estuvieran perfectamente intentadas.
00:09:55
Lo puedo hacer con espacios o con tabuladores o mucho más sencillos. Dentro de editar hay una opción que se llama autoformato. Se puede hacer también con las teclas CTRL T. Si yo doy a autoformato, automáticamente se me pone el código bien ordenado, bien intentado.
00:10:19
bueno, si intentamos ejecutar este código que tenemos aquí
00:10:42
vamos a ver que aparentemente no pasa nada
00:10:47
¿por qué?
00:10:50
porque nos hemos definido la función Mickey Mouse
00:10:51
pero no la estamos utilizando en ningún lado
00:10:53
para utilizarla tendríamos que venir al sitio adecuado
00:10:55
por ejemplo aquí
00:11:02
y llamar a la función
00:11:02
yo la voy a copiar
00:11:05
la función va a tener tres parámetros
00:11:05
que es la posición X, la posición Y y la escala. De momento le vamos a poner que la escala valga 1.
00:11:08
Bueno, ahí tenemos el Mickey Mouse. ¿Que queremos pintarlo de un color negro?
00:11:19
Pues antes de llamar a la función, utilizaremos la función fill que ya conocemos, que nos sirve para elegir el color y le pondremos el valor 0.
00:11:23
Bueno, vamos a ver que tal y como lo tenemos hasta ahora, aunque yo cambie las coordenadas de mi Mickey Mouse,
00:11:33
El Mickey Mouse se sigue pintando en el mismo sitio. Vamos a ver qué podemos hacer para poder cambiar de posición este Mickey Mouse cuando llamamos a la función.
00:11:38
Bueno, vamos a hacerlo modificando aquí un poco los círculos. Para ello, si está la cara, el círculo principal, y originalmente vale 200, vamos a intentar conseguir aquí un valor de 140 utilizando esta coordenada, como si fuera una variable.
00:11:51
Es decir, restaré la coordenada menos 60. Puedo poner espacios o puedo quitarlos. Eso ya a gusto del consumidor. Fijaros como la llamada a una función resulta de una operación. No pasa absolutamente nada.
00:12:12
De igual manera, para conseguir 260, pues tendremos que sumarlo, cor x más 60.
00:12:27
Y aquí pondremos la coordenada x.
00:12:37
Vamos a hacer lo mismo con la coordenada y.
00:12:43
Suponemos que tiene que valer 200, la coordenada y, y para conseguir 110 haremos cor y menos 90.
00:12:46
Y en la función de abajo, lo mismo, exactamente lo mismo. Y aquí pondremos core y. Por último, para conseguir dibujar más grande o más pequeño la cara del Mickey Mouse, lo único que tenemos que hacer es multiplicar este valor en la cara, el valor del tamaño del círculo de la cara, por la escala.
00:12:55
Fijaros que en Java para multiplicar se emplea el operador asterisco
00:13:22
Un asterisco en un código Java significa una multiplicación
00:13:29
Bueno, tenemos que multiplicar ese valor
00:13:34
Y tenemos que multiplicar también los tamaños de los círculos de las orejas
00:13:37
Y también tenemos que multiplicar estos valores que hemos puesto aquí
00:13:44
Este 60 por la escala
00:13:48
Este 90 por la escala
00:13:50
Este 60 aquí también por la escala
00:13:52
Y este 90 por la escala
00:13:54
Bueno, ahora
00:13:56
Podemos ejecutar la función
00:13:58
Igual que antes
00:14:01
Y se nos ha desplazado
00:14:02
A la coordenada adecuada
00:14:04
Vamos a probarlo poniendo un valor más pequeño
00:14:06
Por ejemplo, desplazándolo
00:14:09
Hacia la izquierda
00:14:11
Con un valor aquí más pequeño
00:14:12
Vemos que se cambia
00:14:14
Es más, podemos poner más caras de Mickey Mouse
00:14:15
De forma muy sencilla
00:14:18
Ya nos hemos creado la función
00:14:21
Vamos a llamarla, vamos a utilizarla tantas veces como queramos
00:14:22
Por ejemplo, vamos a hacerlo con un tamaño de cara más pequeño
00:14:26
Y le vamos a poner un valor de 0.5, es decir, la mitad, la mitad de tamaño
00:14:30
Por cierto, en Java los decimales se ponen con punto, nunca con coma
00:14:36
Se sigue el criterio americano de numeración
00:14:41
Y vamos a poner, por ejemplo, que la coordenada x sea el valor 200
00:14:45
y por aquí el valor 300. Es decir, va a estar más a la derecha, más abajo y va a ser más pequeña que la primera.
00:14:50
Ahí las tenemos. De esta forma podemos poner tantas caras como queramos en la posición que queramos de una manera muy sencilla.
00:15:00
Nos hemos creado una función que pinta una cara de manera genérica en la posición y con el tamaño que nosotros queremos.
00:15:07
con esto es fácil entender la utilidad que tiene la creación de funciones
00:15:16
puede que me cueste un poco hacer o definir, crear la función
00:15:23
pero una vez que la tengo creada es muy fácil utilizarla
00:15:28
bueno, de momento hasta aquí es todo
00:15:31
- Valoración:
- Eres el primero. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Idioma/s:
- Autor/es:
- Juan Luis Carrillo
- Subido por:
- Juan Luis C.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 73
- Fecha:
- 6 de octubre de 2020 - 7:38
- Visibilidad:
- Público
- Centro:
- IES SEVILLA LA NUEVA
- Duración:
- 15′ 35″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 125.36 MBytes
Para publicar comentarios debes entrar con tu nombre de usuario de EducaMadrid.
Comentarios
Este vídeo todavía no tiene comentarios. Sé el primero en comentar.