Unidades reales y lanzamientos
DisponibleEscribe la escena en metros: declara la escala y el origen del marco, ubica y dimensiona los cuerpos con unidades, dales color y una velocidad inicial.
Una escena calibrada (meta.scale) con su marco de referencia (meta.frame): lo que se escribe en metros es lo que el motor lee al reproducir, y la cuadrícula rotula esos mismos metros.
/qf-dsl
scale(300px, 1m)
frame(x=100, y=400)
piso = floor(length=3m)
b = sphere(1kg, r=10cm, color=rojo, v0=3, angle=30)
place(b, x=0.5m, y=1m)scale() dice cuántos píxeles mide una unidad (mm, cm, m, km) y va arriba, antes de la primera medida con unidad; sin declararla rige 300 px = 1 m. frame() fija el origen en píxeles del lienzo —la cuadrícula lo muestra— y desde ahí place() se escribe en metros con y hacia ARRIBA. Toda longitud admite unidad (length=3m, r=10cm, y los puntos de path=). Un número sin unidad sigue siendo píxeles. Un cuerpo con v0= y angle= sale lanzado al reproducir: sin apoyo ni cuerda es un proyectil, y sobre un apoyo despega si la velocidad apunta hacia fuera (el tiro parabólico desde el suelo).
/qf-dsl
scale(1px, 425km)
T = sphere(1kg, r=6371km, color=azul, "Tierra")
L = sphere(1kg, r=1737km, color=gris, "Luna")
place(T, x=200, y=270)
place(L, x=200, y=270)El caso astronómico se escribe al revés: 1 px = 425 km. Con la escala declarada, los radios son MEDIDAS y el motor no les aplica el piso de legibilidad: la Luna mide lo que dice su etiqueta.
Dibuja una esfera roja de 10 cm de radio a 1 m de altura sobre el piso, lanzada a 3 m/s con 30° de elevación.La posición de un cuerpo apoyado sigue saliendo de la relación on(); place() en metros es para cuerpos sueltos. at= sigue siendo fracción del recorrido.