Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
Aprenda Matlab 6.1 - Universidad Politécnica de Madrid
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 98<br />
>> x=[1 5 4 2]; y=[1 0 4 3];<br />
>> fill(x,y,'r')<br />
>> colormap(gray), fill(x,y,[1 0.5 0.8 0.7])<br />
7.4. Entrada <strong>de</strong> puntos con el ratón<br />
Se realiza mediante la función ginput, que permite introducir las coor<strong>de</strong>nadas <strong>de</strong>l punto sobre el que<br />
está el cursor, al clicar (o al pulsar una tecla). Algunas formas <strong>de</strong> utilizar esta función son las<br />
siguientes:<br />
[x,y] = ginput lee un número in<strong>de</strong>finido <strong>de</strong> puntos –cada vez que se clica o se pulsa<br />
una tecla cualquiera– hasta que se termina pulsando la tecla intro<br />
[x,y] = ginput(n) lee las coor<strong>de</strong>nadas <strong>de</strong> n puntos<br />
[x,y,bot] = ginput igual que el anterior, pero <strong>de</strong>vuelve también un vector <strong>de</strong> enteros bot<br />
con el código ASCII <strong>de</strong> la tecla pulsada o el número <strong>de</strong>l botón <strong>de</strong>l ratón<br />
(1, 2, ...) con el que se ha clicado<br />
Como ejemplo <strong>de</strong> utilización <strong>de</strong> este comando, ejecútense las instrucciones siguientes en la<br />
ventana <strong>de</strong> comandos <strong>de</strong> MATLAB para introducir un cuadrilátero arbitrario y dibujarlo <strong>de</strong> dos<br />
formas:<br />
>> clf, [x,y]=ginput(4);<br />
>> figure(gcf), plot(x,y,'w'), pause(5), fill(x,y,'r')<br />
don<strong>de</strong> se ha introducido el comando pause(5) que espera 5 segundos antes <strong>de</strong> pasar a ejecutar el<br />
siguiente comando. Este comando admite como argumento un tiempo con precisión <strong>de</strong> centésimas<br />
<strong>de</strong> segundo.<br />
7.5. Preparación <strong>de</strong> películas o "movies"<br />
Para preparar pequeñas películas o movies se pue<strong>de</strong>n utilizar las funciones movie, moviein y<br />
getframe. Una película se compone <strong>de</strong> varias imágenes, <strong>de</strong>nominadas frames. La función getframe<br />
<strong>de</strong>vuelve un vector columna con la información necesaria para reproducir la imagen que se acaba <strong>de</strong><br />
representar en la figura o ventana gráfica activa, por ejemplo con la función plot. El tamaño <strong>de</strong> este<br />
vector columna <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l tamaño <strong>de</strong> la ventana, pero no <strong>de</strong> la complejidad <strong>de</strong>l dibujo. La función<br />
moviein(n) reserva memoria para almacenar n frames. La siguiente lista <strong>de</strong> comandos crearía una<br />
película <strong>de</strong> 17 imágenes o frames, que se almacenarán como las columnas <strong>de</strong> la matriz M:<br />
M = moviein(17);<br />
x=[-2*pi:0.1:2*pi]';<br />
for j=1:17<br />
y=sin(x+j*pi/8);<br />
plot(x,y);<br />
M(:,j) = getframe;<br />
end<br />
Una vez creada la película se pue<strong>de</strong> representar el número <strong>de</strong> veces que se <strong>de</strong>see con el<br />
comando movie. Por ejemplo, para representar 10 veces la película anterior, a 15 imágenes por<br />
segundo, habría que ejecutar el comando siguiente (los dos últimos parámetros son opcionales):<br />
movie(M,10,15)<br />
Los comandos moviein, getframe y movie tienen posibilida<strong>de</strong>s adicionales para las que pue<strong>de</strong><br />
consultarse el Help correspondiente. Hay que señalar que en MATLAB no es lo mismo un movie<br />
que una animación. Una animación es simplemente una ventana gráfica que va cambiando como<br />
consecuencia <strong>de</strong> los comandos que se van ejecutando. Un movie es una animación grabada o<br />
almacenada en memoria previamente.