Español   Ejemplos: Utilidades

Subtitulo del ejemplo

En muchos de los ejemplos de esta web se ha generado un color en función de algún parámetro de entrada, típicamente un ángulo o distancia respecto a los ejes y/u origen (punto 0 0). Los procedimientos que mostramos aquí usan tres funciones "seno" para generar una lista de tres números, que representan el valor de Rojo, Verde y Azul, y están comprendidos entre 0 (mínimo) y 255 (máximo).

para empezar
  nuevo rgb muestra eje dibuja
fin

para nuevo
# Inicializamos papel, lapiz y tortuga
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro subelapiz ocultatortuga
fin

para rgb
  haz "red [abs 255 *seno (:x/2)]
  haz "gre [abs 255 *seno (:x/2 + 120)]
  haz "blu [abs 255 *seno (:x/2 + 240)]
fin

para muestra
  poncolorlapiz blanco ponposicion [-180 150]
  rotula [Paleta de color RGB o RVA]
  ponposicion [-180 147]
  giraderecha 90 bajalapiz
  avanza largoetiqueta [Paleta de color RGB o RVA]
  subelapiz giraizquierda 90
  ponposicion [-170 100] poncolorlapiz rojo
  rotula frase "red= :red
  ponposicion [-170 80] poncolorlapiz verde
  rotula frase "grn= :gre
  ponposicion [-170 60] poncolorlapiz azul
  rotula frase "blu= :blu
fin

para eje
  poncolorlapiz blanco ponposicion [-180 0] bajalapiz
  ponposicion [-180 -86] ponposicion [181 -86] subelapiz
  ponposicion [-190 8] rotula "255
  ponposicion [-192 -88] rotula "0
  ponposicion [184 -88] rotula "x
  ponposicion [-182 -104]
  repitepara [a 0 360 60]
    [rotula :a giraderecha 90 avanza 58 giraizquierda 90]
fin

para dibuja
  repitepara [x 0 360]     [ haz "r ejecuta :red
      haz "g ejecuta :gre
      haz "b ejecuta :blu
      poncolorlapiz ( lista :r 0 0 )
        punto lista :x-180 :r/3-85
      poncolorlapiz ( lista 0 :g 0 )
        punto lista :x-180 :g/3-85
      poncolorlapiz ( lista 0 0 :b )
        punto lista :x-180 :b/3-85
      poncolorlapiz ( lista :r :g :b )
         espectro :x]
fin

para espectro :x
  ponxy :x-180 cambiasigno 130 bajalapiz
  pony -160 subelapiz
  ponxy 140 150 ponrumbo :x pongrosor 2   bajalapiz avanza 30 subelapiz pongrosor 1
fin


Se pueden probar "generadores de color" alternativos cambiando el procedimiento RGB por:

para rgb
  haz "red [127.5 *(1+seno :x)]
  haz "gre [127.5 *(1+seno (:x + 120))]
  haz "blu [127.5 *(1+seno (:x + 220))]
fin
RGB


para rgb
  haz "red [abs 255 *seno :x]
  haz "gre [abs 255 *seno (:x + 120)]
  haz "blu [abs 255 *seno (:x + 240)]
fin
RGB


para rgb
  haz "red [127*((sen :x) + abs sen :x)]
  haz "gre [127*((sen :x+120)+abs sen :x+120)]
  haz "blu [127*((sen :x+240)+abs sen :x+240)]
fin
RGB


para rgb
  haz "red [abs 255 *seno (:x/2)]
  haz "gre [abs 255 *seno (:x/2 + 120)]
  haz "blu [abs 255 *seno (:x/2 + 240)]
fin
RGB


Probar este programa ahora

Procedimiento a ejecutar:
empezar