La clotoide, espiral de Euler o espiral de Cornu es una curva en el plano cuya curvatura, es decir el inverso de su radio diferencial, varía linealmente con la distancia recorrida sobre la misma. Este comportamiento puede ser muy deseable en aplicaciones donde un objeto moviéndose a velocidad vaya a estar sujeto a cambios de dirección.
domingo, 10 de agosto de 2025
jueves, 22 de mayo de 2025
Morphing de curvas paramétricas con R
Con lo fácil que es definir vectorialmente en R una curva paramétrica (aquella que depende de un solo valor de entrada constituyendo una función de R → Rn), podemos animar curvas paramétricas en el plano que se transformen en otras con solo interpolarlas linealmente. La única condición a cumplir es que las curvas origen y destino deben estar formadas exactamente por la misma cantidad de puntos.
viernes, 21 de febrero de 2025
Bouncing ball con el becario motivado: ChatGPT
Apareció hace unas semanas un test al que se sometía a varios LLM's, consistente en pedir que creasen una rutina en Python que modelase una pelotilla rebotando por dentro de las paredes de un cuadrado que rota. Por lo visto solo Grok 3 dio una solución correcta, los demás modelos no detectaban bien las colisiones y la pelota se salía del cuadrado o hacía cosas raras.
domingo, 5 de enero de 2025
Random walk browniano con R
Un random walk es un proceso estocástico que describe un recorrido formado por una sucesión de pasos aleatorios en algún espacio matemático. Cuando este movimiento es continuo, es decir cuando todas las ubicaciones del espacio son factibles, hablamos de movimiento browniano, estudiado en Física para modelar el comportamiento de partículas suspendidas en un medio líquido o gaseoso. El patrón de movimiento consiste en fluctuaciones aleatorias en la posición de una partícula dentro de un subdominio del fluido, seguido de una reubicación a otro subdominio.
miércoles, 9 de octubre de 2024
Radiografía de Tenerife con R
En este ejercicio además de crear una animación que combine varios de los mapas que hemos venido creando (hillshade, curvas de nivel, proyección de sombras,...), vamos a implementarlo de forma vectorizada, para poder superponer con una línea de código sobre un mapa base información sumarizada más concreta, utilizando una flexible máscara con transparencia al más puro estilo de las máscaras de capa de Photoshop.
lunes, 16 de septiembre de 2024
Teoría de colas y fiestas de pueblo
La Teoría de colas es la disciplina que estudia los procesos de demanda de Servicio por parte de una serie de Clientes sobre uno o más Recursos o Servidores. Ejemplos de colas son las que se forman en las cajas del supermercado, en la parada del bus, y también en cosas más incorpóreas como las aplicaciones que se ejecutan en un ordenador solicitando tiempo de CPU.
sábado, 23 de marzo de 2024
Ocultando imágenes en el espectro de un sonido con R
Un clásico juego de encriptación consiste en incrustar imágenes en el espectro de un archivo de audio. En el caso de usar frecuencias audibles va a sonar horrible, pero si dibujamos su espectrograma las imágenes aparecerán por arte de magia.
lunes, 19 de febrero de 2024
Mapas estilo LEGO con R
Tras el bombardeo que el algoritmo de LinkedIn me ha propinado días atrás con mapas hechos de fichas LEGO con ArcGIS Pro o QGIS, he querido escribir mi propia función en R que vaya un poco más allá: se trata no solo de representar mapas con fichas de LEGO, sino que se utilicen diferentes tamaños y orientaciones de los ladrillos como ocurriría con un LEGO real.
domingo, 31 de diciembre de 2023
Simulación de Diluvio Universal con R
En este artículo vamos a practicar en R con mapas de elevaciones en formato matricial, leyendo con el paquete raster archivos GeoTIFF procedentes de General Bathymetric Chart of the Oceans (GEBCO). Este recurso permite descargar en formato GeoTIFF y con una alta resolución, el mapa de elevaciones de cualquier parte del planeta definida interactivamente, incluyendo tanto las zonas terrestres (altimetrías) como todos los fondos oceánicos (batimetrías).
lunes, 7 de agosto de 2023
OppenheimeR, el destructor de mundos
Como evolución del ejercicio de representación en 3D de la Tierra que hicimos en 'Fotografiando la Tierra desde el espacio con R', vamos a simular un final nuclear para nuestra civilización, uno de los temores del mayor responsable de la creación de la bomba atómica y a la postre pacifista Robert Oppenheimer.
"I am become Death, the destroyer of worlds"
(J. Robert Oppenheimer, julio 1945)
martes, 24 de enero de 2023
Proyección rectilínea de escenas 3D sobre el plano con R
Tanto si tienes una cámara de fotos, usas programas para hacer render o te echas partidas a videojuegos 3D, lo que estás viendo en esas imágenes no es información tridimensional real sino una aproximación plana de la misma.
martes, 7 de junio de 2022
Simulación acústica de motores flatplane y crossplane
En este vídeo de YouTube se explica la diferencia entre dos tipos de motores de explosión interna: los muy extendidos motores con cigüeñal flatplane y los mucho menos habituales crossplane (como el que lleva la Yamaha R1 del autor del vídeo). Las ventajas y desventajas mecánicas de cada uno se documentan sobradamente allí y en otras fuentes, pero he querido hacer una simulación de cómo puede llegar a ser distinto el sonido producido por uno y otro tipo de motor.