Kanvas/Public/doc/es/description.md

7 lines
2.3 KiB
Markdown
Raw Normal View History

El proyecto **Kanvas** es un pequeño proyecto desarrollado por **KyMAN**, el cual no es más que un sencillo motor gráfico 2D basado en el API de Canvas para JavaScript sobre navegador. La idea es intentar renderizar al máximo la salida de gráficos 2D a partir de este mismo API ampliando su funcionabilidad nativa u original y facilitar su modificación en caliente. Para llevar a cabo dicho plan, la idea es tener un mapeado de lo que se quiere representar y sea éste el que se encargue de dibujarlo. Para que puedan existir niveles y capas de profundidad se optó por un mapeado en un formato de Arrays anidados de diccionarios en JSON los cuales definan los elementos. Una vez leídos, éstos se convertiran en un objeto directo en JavaScript, lo que reducirá la carga y permitirá especificar más en profundidad cada uno de los elementos. La posición ya determina la profundidad y el solapamiento de los elementos.
La idea es poner en un Array JSON todos los elementos ordenados y anidados sobre sí mismos, ya sean en posiciones específicas por los cuales, vayan saliendo éstos. Los elementos pueden tener hijos, concepto que permite el anidamiento pero heredarían posicionamiento y otras propiedades de los padres, algunas corregibles, como el propio posicionamiento; y otras no, como puede ser la transparencia. Este concepto evitaría tener que estar pendiente de la creación o gestión en sí misma más que la de los efectos o dinamismos, que irían a parte acorde únicamente a propiedades asignadas. Además, al estar en un Array interpretado, el dibujado iría plenamente controlado por éste, automatizando gran parte del control con este concepto y reducir la carga de los efectos heredados y posicionamientos anidados.
Para evitar una extensión enorme de la librería, y pensando en el tipo de plataformas que se piensa aplicar dicho proyecto, éste se basará plenamente en el **AnP**, otro proyecto del que participa KyMAN como creador y desarrollador, pero en este caso, desde la estructura gráfica básica, con lo que tendríamos un sistema de tamaño dinámico que unifique tamaño en las distintas pantallas, gestor de configuraciones, I18N, hilos de proceso simulados \(intervalos de JavaScript), etc.
El nombre de *Kanvas* viene del elemento con API **Canvas**, pero sobre el nombre *KyMAN*, creador de este proyecto.