Giter VIP home page Giter VIP logo

acto_del_momento_simultaneo's Introduction

Acto del Momento Simultáneo

(acto poéticopandémico)

Depencencias

El código del proyecto utiliza física simulada con la librería Matter.js y gráficos avanzados con p5.js. La idea central es la visualización de datos geográficos y notas asociadas, permitiendo al usuario interactuar con ellos mediante la simulación física.

Variables Globales

  • sketch: Objeto que representa el lienzo HTML donde se dibujan los gráficos.
  • data: Objeto JSON que almacena datos cargados externamente.
  • notes: Array de objetos visuales que representan las notas en el lienzo.
  • springs: Arreglo destinado a almacenar resortes entre objetos para simular conexiones físicas.
  • w, h: Variables para almacenar el ancho y alto del lienzo.
  • lastTime: Utilizado para guardar un registro de tiempo para control de la simulación en 'World'.
  • Engine, World, Bodies, etc.: Alias para componentes de Matter.js, facilitan el acceso y la escritura del código.

Preparación y Carga de Datos

La función preload() se utiliza para cargar datos antes de que el resto del sketch de p5.js se inicialice. Esto incluye:

  • Cálculo del ancho y alto del lienzo basado en un elemento HTML.
  • Carga de datos JSON de una URL específica.
  • Carga de fuentes tipográficas que se usarán para texto.

Función gotData()

Esta función maneja la respuesta después de cargar los datos JSON. Calcula los límites geográficos (latitud y longitud) de los resultados para establecer un rango de acción.

Creación de Objetos y Restricciones

  • createObjects(): Crea objetos basados en los datos cargados. Cada objeto nota se crea con propiedades como latitud, longitud, autor, entre otros.
  • createConstraints(): Establece restricciones y límites en el mundo de Matter.js, incluyendo un límite para el ratón, para interactuar con los objetos físicos.

Funciones de Dibujo y Animación

  • setup(): Configura el entorno inicial, crea el lienzo, inicializa la simulación física, y prepara los gráficos.
  • draw(): Función que se ejecuta en un bucle para dibujar el lienzo. Actualiza la simulación física, maneja la interactividad de los objetos, y actualiza los gráficos basados en las interacciones.

Interactividad

  • mouseClicked() y touchEnded(): Gestiona eventos de clic y toque para interactuar con las notas. Activa resortes y modifica el estado de las notas.
  • saveFile(): Permite al usuario guardar el estado actual del lienzo como una imagen PNG.

Visualización de Texto

  • displayNoteTitle() y displayNoteContent(): Funciones para mostrar el título y contenido de las notas en el lienzo. Utilizan las fuentes cargadas y manejan el formato del texto.

Consideraciones de Rendimiento

  • La gestión de gráficos y simulación física en un solo sketch puede ser demandante. La optimización puede ser crucial, especialmente en la gestión de eventos y redibujado de gráficos.
  • Uso de blendMode() en updateGraphics() para efectos visuales podría ralentizar el rendimiento si no se maneja con cuidado.

Este código es un ejemplo avanzado (que puede ser utilizado como plantilla) de cómo combinar p5.js con Matter.js para crear experiencias interactivas y visualmente atractivas basadas en datos dinámicos. Muestra técnicas de carga de datos, visualización gráfica, y simulación física integradas de manera cohesiva para proporcionar interacción y visualización de datos en tiempo real.

acto_del_momento_simultaneo's People

Contributors

felipelavinz avatar hspencer avatar

Watchers

 avatar  avatar  avatar

Forkers

eadpucv

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.