Diferencia entre revisiones de «PrInf19: Juego: doble o nada versión masiva»
(→Función doble o nada) |
|||
| Línea 14: | Línea 14: | ||
Para facilitar el desarrollo de esta función, puedes utilizar la siguiente plantilla | Para facilitar el desarrollo de esta función, puedes utilizar la siguiente plantilla | ||
{{ matlab | codigo = | {{ matlab | codigo = | ||
| + | function dentro = puntoSeQuedaDentro(p, x, y) | ||
| + | nSaltos = 4; | ||
| + | % Coordenadas del punto inicial | ||
| + | xp = p(1); | ||
| + | yp = p(2); | ||
| + | xn = xp; % xn es cada una de las posiciones x por donde va pasando el iman | ||
| + | yn = yp; | ||
| + | % ------------------------------- | ||
| + | % TU CODIGO AQUI | ||
| + | % En esta parte del codigo hay que hacer que el iman salte como maximo cuatro veces | ||
| + | % Si sale del poligono, no hay que continuar saltando | ||
| + | % Tiene que dibujar cada posicion en color magenta, con el siguiente comando | ||
| + | % plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14); | ||
| + | % | ||
| + | % Estos comentarios se pueden eliminar del código antes de enviar la solución | ||
| + | % ------------------------------- | ||
| − | }} | + | |
| + | dentro = inpolygon(xn, yn, x, y); | ||
| + | end}} | ||
{{ Tarea | Termina la función usando la plantilla anterior, y guarda en un fichero de nombre ''puntoSeQuedaDentro.m''.}} | {{ Tarea | Termina la función usando la plantilla anterior, y guarda en un fichero de nombre ''puntoSeQuedaDentro.m''.}} | ||
Revisión del 19:36 8 oct 2013
| Práctica de Informática | |
|---|---|
| Juego: doble o nada | |
| Práctica anterior | Siguiente práctica |
| Este artículo es un guión de prácticas de Informática | |
| |
En esta práctica vamos a continuar con el juego anterior, pero vamos a realizar una implementación masiva. Es decir, en vez de probar con un solo punto, vamos a probar con miles de puntos generados aleatoriamente, y vamos a comprobar si cada uno de estos puntos acaba siendo repelido fuera del triángulo, o permanece dentro del triángulo. Una vez que hayamos realizado esta comprobación, dibujaremos las posiciones iniciales de los puntos que permanecen dentro del triángulo, para acabar generando una inquietante figura.
1 Requisitos previos
Antes de realizar esta práctica, es necesario haber realizado la práctica anterior, ya que vamos a reutilizar el código desarrollado en esa práctica:
2 Función doble o nada
El primer paso será crear una función que realice el juego de la práctica anterior. Esta función acepta como argumentos de entrada el punto a probar y los vértices del polígono. La función devuelve true si el punto continúa dentro del polígono tras llegar al límite de saltos, y devuelve false si el punto es repelido fuera del polígono. Esta función es muy similar al programa que hemos realizado en la práctica anterior, con la única excepción de que no dibuja nada y solo devuelve verdadero o falso.
Para facilitar el desarrollo de esta función, puedes utilizar la siguiente plantilla
function dentro = puntoSeQuedaDentro(p, x, y)
nSaltos = 4;
% Coordenadas del punto inicial
xp = p(1);
yp = p(2);
xn = xp; % xn es cada una de las posiciones x por donde va pasando el iman
yn = yp;
% -------------------------------
% TU CODIGO AQUI
% En esta parte del codigo hay que hacer que el iman salte como maximo cuatro veces
% Si sale del poligono, no hay que continuar saltando
% Tiene que dibujar cada posicion en color magenta, con el siguiente comando
% plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14);
%
% Estos comentarios se pueden eliminar del código antes de enviar la solución
% -------------------------------
dentro = inpolygon(xn, yn, x, y);
end
| |
Tarea: | Termina la función usando la plantilla anterior, y guarda en un fichero de nombre puntoSeQuedaDentro.m. |