para polígono :n :l
gd 360-360/:n
repite :n [av :l gd 360/:n]
ot
fin
Este é o meu procedemento para inscribir un circulo nun triángulo equilátero (interface galega):
para circtri :r
bp
pongrosor 2
circulo :r
subelapis
re :r
baixalapis
xd 90
av :r*rc 3
xe 120
repite 2 [av :r*(rc 3)*2 xe 120]
av :r*rc 3
subelapis
ot
centro
fin
Este é un procedemento que constrúe un corazón de tamaño variable coa cor elixida (interface galega).
para cor :r :c
bp
ot
pongrosor 2
xe 90
arco :r 270 90
subelapis
av :r*2
baixalapis
arco :r 270 90
mt
subelapis
xe 90
baixalapis
arco :r*3 90 160.5
xe 90
subelapis
av :r*2
xd 90
baixalapis
arco :r*3 199.5 270
ot
pcl :c
rechea
fin
Este procedemento debuxa a función f(x)=90.cos x . (interface galega)
para funcion
fai "x 0
fai "paso 1
borrapantalla
grella 25 25
eixos 25
pongrosor 2
ocultatartaruga
subelapis
ponxy 0 90*coseno 0
baixalapis
mentres [:x<500] [fai "x :x+:paso ponxy :x 90*coseno :x baixalapis ponxy :x 90*coseno :x subelapis ponxy -:x 90*coseno -:x baixalapis ponxy -:x 90*coseno -:x subelapis]
fin
Me voy a permitir simplificar tu programa que, como te dije en el otro foro, me parece estupendo. Para ello uso la primitiva "punto" en vez de llevar a la tortuga "de un lado a otro" y "repitepara" en lugar de "mientras".
para funcion
borrapantalla
grella 25 25
eixos 50
pongrosor 2
ocultatartaruga
repitepara [x 0 500 1]
[ punto frase :x 90 * coseno (:x)
punto frase (-:x) 90 * coseno (-:x) ]
fin
La tortuga se mueve más rápido, pero si nos interesa ralentizarla podemos usar "espera".
Álvaro
Sólo decirte que tu programa tiene más mérito, ya que no usaste esas "falsas primitivas" (tipo circulo, arco, ... y, en este caso "punto") que comentamos en el curso.
Por cierto, me equivoqué al escribir. Dije que "... la tortuga se mueve más rápido ...", cuando debería haber dicho que "... la gráfica se muestra más rápido ...", ya que con "punto" la tortuga no se mueve.
Álvaro