Superficies tridimensionales
Imagina una rejilla muy elástica. Sin deformar, se ve como una red plana formada por cuadrados. Si, por el contrario, utilizamos una función de dos variables para la tercera componente, cada nudo de la misma se desplazará hacia arriba o abajo de su posición original, mostrando una superficie 3D.
para empezar # Inicializamos papel, lapiz y tortuga reponetodo pontamañopantalla [400 400] poncolorpapel negro poncolorlapiz verde subelapiz ocultatortuga # haz "lado 16 # Incrementar (p.e. 32) para cuadricula mas fina dibujarejilla fin para posicionrejilla :i :j haz "vert funcion :i :j haz "green 163-92*menor :i :j poncolorlapiz (lista 0 :green 0) haz "xx 24*((5*:i)-(3*:j)) haz "yy 9*((3*:i)+(5*:j)) + (96*:vert) -16 devuelve lista :xx :yy fin para funcion :x :y # devuelve 0 # Sin cambios # devuelve ((cos (90* :x))*( cos (90* :y))) # devuelve ((cos (270* :x))*( cos (270* :y))) devuelve cos (360* (raizcuadrada (:x*:x + :y*:y))) fin para dibujarejilla repitepara [l 0 1] [repitepara (lista "i cambiasigno 1 1 2/:lado) [subelapiz repitepara (lista "j cambiasigno 1 1 2/:lado) [si :l=0 # lineas verticales [ponposicion posicionrejilla :i :j bajalapiz] si :l=1 #lineas horizontales [ponposicion posicionrejilla :j :i bajalapiz] ]]] fin para menor :i :j si :i<:j [devuelve :i] [devuelve :j] fin |