A math and utility toolkit by JDPO (Josué Daniel Posadas Osorio)
npm install alephzero📖 Manual de uso de alephZero
1. Identidad
- show → imprime el logo ASCII en consola.
- show_2 → lo muestra en la página dentro un .
2. Álgebra lineal
- matrixSum → suma de matrices.
- matrixRest → resta de matrices.
- matrixHadamard → producto elemento a elemento.
- matrixProduct → producto matricial clásico.
3. Operaciones de tablas (vectores)
- sumTable → tabla con todas las sumas posibles.
- restTable → tabla de restas.
- productTable → tabla de productos.
- quotientTable → tabla de cocientes.
4. Codificación aritmética
- buildModelFromText → genera modelo de frecuencias.
- encode → devuelve {code, model}.
- decode → reconstruye el texto.
5. Matemáticas varias
- dotProduct → producto escalar.
- derivative → derivada numérica de una expresión en x.
6. DOM y renderizado
- addHTMLTag → inserta un elemento HTML.
render2D
- → crea un canvas 2D y ejecuta tu función de dibujo.
render3D
- → crea un canvas WebGL.
complex
7. Números complejos
- → parsea string a objeto {Re, Im}.
compAbs
- → valor absoluto.
compSum
- , compRest, compProduct, compQuotient → operaciones.
compParse
- → convierte objeto a string.
createBody
8. Física básica
- → crea un cuerpo circular.
update
- → actualiza posición y velocidad.
collideBounds
- → rebote contra bordes.
collideBodies
- → colisión entre dos cuerpos circulares.
`
🧪 Ejemplo práctico
JS
``
alephZero.render2D((ctx) => {
const ball = alephZero.createBody(50, 50, 40, -20, 0, 0, 15);
const dt = 0.016;
const g = 9.81;
function loop(){
ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);
ball.vy -= g * dt;
alephZero.update(ball, dt);
alephZero.collideBounds(ball, ctx.canvas.width, ctx.canvas.height);
ctx.beginPath();
ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI*2);
ctx.fillStyle = "red";
ctx.fill();
requestAnimationFrame(loop);
}
loop();
}, 400, 300);
Esto dibuja una bola roja cayendo con gravedad y rebotando en los bordes.