Está en la página 1de 7

Xlogo

Diseño y creación de gráficos mediante instrucciones


Mediante estás técnicas se ejercitarán habilidades de organización de instrucciones,
creación de procedimientos, parametrización, manejo de repeticiones, recursividad,
acceso a arreglos de datos, utilización de variables, aplicación de fórmulas matemáticas
y funciones trigonométricas, diseño y CAD, cardinalidad y ubicación en el espacio,
composición de colores, reutilización de código fuente, interactividad, etc.

Xlogo es un editor e interprete de instrucciones que permite ejecutar instrucciones desde


la línea de comandos o programarlas en una ventana de edición.
Los gráficos se logran ordenándole a la tortuga que se desplace por la pantalla y trace
líneas.
Las instrucciones de xlogo pueden ser primitivas o procedimientos creados por el
usuario.
Una primitiva es una instrucción propia del programa que puede ser ejecutada
directamente en la linea de comandos o incluida en la redacción de un procedimiento.
La mayoría de las primitivas necesitan datos para ejecutarse.
Un procedimiento es un conjunto de instrucciones escritos en el editor. Se declara con la
orden “para” el nombre, y los datos necesarios representados por parámetros o
argumentos:
Ej:
Para editar el procedimiento “cuadrado” que reciba como parámetro la longitud de cada
lado se abre el editor y se escribe:

Para cuadrado :lado  cuadrado es el nombre y :lado el tamaño (a ingresar)


Repite 4 [av :lado gd 90]  cuatro líneas y giros
Fin

Luego se cierra el editor pulsando en la tortuga y en el histórico de comandos aparecerá:


“acaba de definir cuadrado”
Y escribiendo cuadrado 100 se trazará un cuadrado de 100 píxeles de lado.
Si solo escribimos cuadrado el programa nos dirá que no hay suficientes datos para
cuadrado, eso es porque establecimos que lleva un parámetro.

La primitiva repite recibe como parámetros la cantidad de veces que va a hacer algo y
una lista con las instrucciones que va a ejecutar cada vez.
Una lista es un conjunto de elementos encerrados entre corchetes y separados por
espacios entre si.

Trazos rectos

Desplazamiento por avance, retroceso y giros:


Las primitivas av y re hacen que la tortuga avance y retroceda la cantidad de píxeles
indicada como argumento.
Las primitivas gi y gd hacen que la tortuga gire a la izquierda y derecha la cantidad de
grados indicada
La primitiva rumbo devuelve un valor en grados que representa hacia donde apunta la
tortuga. La ventana se interpreta como un mapa donde arriba es el rumbo 0 y crece en
sentido horario.
La primitiva ponrumbo hace que la tortuga se oriente hacia un rumbo determinado
Gd 90 es lo mismo que escribir ponrumbo rumbo + 90

Práctica 1:
Editar un procedimiento “polígono” que reciba como argumentos la cantidad y la
longitud de los lados y trace polígonos regulares. Tener en cuenta que la suma de los
ángulos exteriores de cualquier figura cerrada siempre da 360º

Práctica 2:
Editar un procedimiento “roseta” que dé toda una vuelta trazando polígonos. Debe
recibir como parámetros la cantidad de polígonos que trazará, y los datos para trazar los
mismos.

Desplazamiento por saltos y coordenadas


Cada pixel de la ventana se identifica por sus posiciones horizontal y vertical respecto
del centro. El centro es la posición 0 0, a la izquierda y abajo decrecen y a la derecha y
arriba crecen
La primitiva pos devuelve una lista de dos números que indican la posición actual de la
tortuga en la pantalla
El primer número de una coordenada representa la posición horizontal y el segundo la
posición vertical
La primitiva ponxy hace que la tortuga salte a la coordenada indicada, x representa la
posición horizontal e y representa a la vertical. Para un desplazamiento solo horizontal
se usa ponx y para un desplazamiento vertical se usa pony.
Para un desplazamiento relativo a la posición actual hay que descomponer la
coordenada con las primitivas primero y ultimo: primero pos devuelve la x y ultimo pos
devuelve la y.
Ej: para desplazarse 45 píxeles a la izquierda y 78 hacia arriba de la posición actual
Ponxy (primero pos) – 45 (ultimo pos )+ 78.
Los paréntesis en estos casos son imprescindibles, de no usarlos, el xlogo devolverá un
mensaje de error diciendo que no es un número.

Desplazamientos con y sin trazos


La primitiva sl o subelapiz hace que la tortuga no trace mientras se desplaza
La primitiva bl o bajalapiz hace que la tortuga trace líneas mientras se desplaza

Práctica 3:
Editar un procedimiento “triánguloraton” que trace un triángulo rectángulo cuya
hipotenusa sea la línea que une el centro de la ventana con la posición del puntero del
Mouse. Las coordenadas del Mouse se obtienen mediante la primitiva posraton.
Asegurarse que antes de trazar cualquier línea, la tortuga vaya al centro de la ventana.

Práctica 4:
Editar un procedimiento “rayadovertical” y otro “rayadohorizontal” que rayen la
ventana vertical y horizontalmente. Deben recibir como parámetros la cantidad y la
longitud de las líneas que van a trazar.
Tener en cuenta que la tortuga debe comenzar y terminar el procedimiento en el centro
de la pantalla y para trazar la primera linea debe desplazarse hacia la esquina superior
izquierda de la ventana luego entrar en una repetición en la que se trace cada linea y se
deje cada espacio necesario entre ellas. El ancho de cada espacio resulta de dividir el
ancho o alto de la pantalla entre la cantidad de líneas a trazar.
Se pueden hacer mediante desplazamientos y giros o mediante saltos.
Práctica 5:
Crear un procedimiento “patron” que combine varios rayados horizontales y verticales
variando el grosor y el color de la línea en cada caso. Para establecer el color de los
trazos se usa poncl o poncolorlapiz y para establecer el grosor se usa pongr o
pongrosorlapiz.

Curvas
Circulos
La primitiva circulo traza una circunferencia con el radio indicado como parámetro y
cuyo centro es la posición de la tortuga. Es como abrir un compás con la medida
determinada y trazar la circunferencia poniendo la aguja en la posición de la tortuga.

Arcos
Los arcos son secciones angulares de los círculos. La primitiva arco traza una línea
curva en sentido horario y necesita 3 datos para poder ejecutarse:
1. el radio del arco, la distancia entre la tortuga y la línea, la apertura del
compás

2. el rumbo en el que comienza a trazarse el arco, donde apoya el lápiz del


compás
3. el rumbo en el que termina de trazarse el arco, donde se levanta el lápiz
del compás

Ej:
Para trazar un semicírculo de 100 px de radio, hacia arriba de la posición de la tortuga
se escribe:

arco 100 270 90  empieza a trazar 100 px a la izquierda (rumbo 270) y deja de
hacerlo 100 px a la derecha de la tortuga (rumbo 90)

Los círculos y arcos se trazan siempre, no hace falta bajar el lápiz.

Práctica 6:
Crear procedimientos para trazar las siguientes figuras (f1, f2 y f3) ingresando como
argumento el tamaño de cada una. Respetar las proporciones indicadas en cada figura

1/4
1/3
1/2
/21 1/2
1/3
1/4
1/2 1/3

Variables:
Para almacenar un valor que se desprende de un cálculo se puede crear una variable,
para ello usamos la primitiva haz que lleva dos parámetros, el primero es el nombre que
recibirá la variable, es un texto y debe comenzar siempre abriendo comillas pero sin
cerrarlas luego. Para acceder al contenido de una variable lo hacemos como al acceder a
los parámetros de un procedimiento, escribiendo dos puntos y el nombre. P/E obtener la
hipontenusa de un tríangulo rectángulo con catetos iguales se escribe:
Haz “hipotenusa rc( :lado*:lado*2)/2
Y luego
Av :hipotenusa
Para que la tortuga avance la longitud calculada

1/3
Valores al azar:

La primitiva azar devuelve un número aleatorio entre 0 y el número ingresado como


parámetro
Ej: azar 3 puede devolver 0, 1, 2 o 3
Cuando necesitamos acceder a un elemento al azar de una lista que no precisamente es
un rango de números enteros, podemos usar la primitiva elige que lleva como parámetro
dicha lista

Si queremos que haga un dibujo al azar, entre los que diseñamos antes, de un tamaño al
azar entre 100 y 200:

Elige [f1 f2 f3] 100 + azar 100

Práctica 7:
Crear un procedimiento que llene la pantalla de dibujos estableciendo la posición al azar
y luego eligiendo de todos los dibujos creados, con tamaños, grosores de linea y colores
al azar.

Colores
El color del trazo y del relleno se establece con la primitiva poncolorlapiz o poncl y el
color del fondo de la ventana con poncolorpapel o poncp
Los colores se pueden establecer por:
• su nombre (blanco, rojo, verde, amarillo, azul, etc.).
• Su número de orden de la lista de colores básicos (1, 2, 3, 4, etc.)
• Una lista formada por 3 valores entre 0 y 255. El primer elemento corresponde
al valor del rojo, el segundo al verde y el tercero al azul (rgb). Esto nos da una
paleta de 16.777.216 posibilidades diferentes (24 bits)
Para obtener el color actual del lápiz se utiliza colorlapiz y para obtener el color del
fondo de la ventana se utiliza colorpapel
Para modificar un color primero hay que obtenerlo y descomponerlo, acceder al
componente indicado, realizar la modificación y establecer el nuevo color.
Por ejemplo: Aclarar un rojo es aumentar la cantidad de verde y azul en la misma
medida. Entonces se obtiene el color actual y se descompone:
Haz “coloractual colorlapiz
Haz “rojo elemento 1 :coloractual
Haz “verdeactual elemento 2 :coloractual
Haz “azulactual elemento 3 :coloractual
Luego se modifican los valores
Haz “verdenuevo :verdeactual + 20
Haz “azulnuevo :azulactual + 20
Y al final se establece el color del lapiz con los nuevos valores, para ello se usan las
primitivas frase y lista
Poncl frase lista :rojo :verdenuevo :azulnuevo
Gradientes
Un gradiente o degradado se obtiene aumentando o disminuyendo alguno de los valores
que componen en una determinada cantidad de pasos.
Para lograr un gradiente es necesario entrar en un ciclo de repetición que obtenga y
modifique los componentes rojo, verde y azul de los colores

También podría gustarte