q5 3.7.6 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/defs/q5-c2d-es.d.ts +926 -174
- package/defs/q5-c2d.d.ts +9 -9
- package/defs/q5-es.d.ts +963 -207
- package/deno.json +1 -1
- package/package.json +1 -1
- package/q5.d.ts +9 -9
- package/q5.js +130 -26
- package/q5.min.js +2 -2
package/defs/q5-es.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ declare global {
|
|
|
3
3
|
// ⭐ core
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Bienvenido
|
|
6
|
+
* Bienvenido al contenido de q5! 🤩
|
|
7
7
|
*
|
|
8
8
|
* ¿Primera vez programando? Revisa la [guía para principiantes de q5](https://github.com/q5js/q5.js/wiki/q5-Beginner's-Brief).
|
|
9
9
|
*
|
|
@@ -522,7 +522,7 @@ declare global {
|
|
|
522
522
|
/** 🌆
|
|
523
523
|
* Array de datos de color de píxeles de un lienzo o imagen.
|
|
524
524
|
*
|
|
525
|
-
* Vacío por defecto,
|
|
525
|
+
* Vacío por defecto, obtener el dato ejecutando `cargarPíxeles`.
|
|
526
526
|
*
|
|
527
527
|
* Cada píxel está representado por cuatro valores consecutivos en el array,
|
|
528
528
|
* correspondientes a sus canales rojo, verde, azul y alfa.
|
|
@@ -1367,48 +1367,306 @@ declare global {
|
|
|
1367
1367
|
// 🎨 color
|
|
1368
1368
|
|
|
1369
1369
|
/** 🎨
|
|
1370
|
-
*
|
|
1370
|
+
* Crea un nuevo objeto `Color`, el cual es útil principalmente para almacenar
|
|
1371
|
+
* un color que tu sketch reutilizará o modificará más tarde.
|
|
1371
1372
|
*
|
|
1372
|
-
*
|
|
1373
|
-
*
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
1373
|
+
* Con el modo de color por defecto, RGB, los colores tienen componentes `r`/`red` (rojo), `g`/`green` (verde),
|
|
1374
|
+
* `b`/`blue` (azul), y `a`/`alpha` (alfa).
|
|
1375
|
+
*
|
|
1376
|
+
* Las funciones [`relleno`](https://q5js.org/learn/#fill), [`trazo`](https://q5js.org/learn/#stroke), y [`fondo`](https://q5js.org/learn/#background)
|
|
1377
|
+
* aceptan la misma amplia gama de representaciones de color que esta función.
|
|
1378
|
+
*
|
|
1379
|
+
* El formato de color por defecto es "flotante" ("float"), así que
|
|
1380
|
+
* establece los componentes de color a valores entre 0 y 1.
|
|
1381
|
+
*
|
|
1382
|
+
* Aquí hay algunos ejemplos de uso válido:
|
|
1383
|
+
*
|
|
1384
|
+
* - `color(1)` (escala de grises)
|
|
1385
|
+
* - `color(1, 0.8)` (escala de grises, alfa)
|
|
1386
|
+
* - `color(1, 0, 0)` (r, g, b)
|
|
1387
|
+
* - `color(1, 0, 0, 0.1)` (r, g, b, a)
|
|
1388
|
+
* - `color('red')` (nombre de color)
|
|
1389
|
+
* - `color('#ff0000')` (color hex)
|
|
1390
|
+
* - `color([1, 0, 0])` (componentes de color)
|
|
1391
|
+
* @param {string | number | Color | number[]} c0 color o primer componente de color
|
|
1392
|
+
* @param {number} [c1] segundo componente de color
|
|
1393
|
+
* @param {number} [c2] tercer componente de color
|
|
1394
|
+
* @param {number} [c3] cuarto componente de color (alfa)
|
|
1395
|
+
* @returns {Color} un nuevo objeto `Color`
|
|
1376
1396
|
* @example
|
|
1377
|
-
* await crearLienzo(200
|
|
1378
|
-
*
|
|
1397
|
+
* await crearLienzo(200);
|
|
1398
|
+
* rect(-100, -100, 100, 200);
|
|
1399
|
+
*
|
|
1400
|
+
* // ( r, g, b, a)
|
|
1401
|
+
* let botella = color(0.35, 0.39, 1, 0.4);
|
|
1402
|
+
* relleno(botella);
|
|
1403
|
+
* trazo(botella);
|
|
1404
|
+
* grosorTrazo(30);
|
|
1405
|
+
* círculo(0, 0, 155);
|
|
1379
1406
|
* @example
|
|
1407
|
+
* await crearLienzo(200);
|
|
1408
|
+
* // (gris, alfa)
|
|
1409
|
+
* let c = color(0.8, 0.2);
|
|
1410
|
+
*
|
|
1380
1411
|
* q5.dibujar = function () {
|
|
1381
|
-
* fondo(
|
|
1382
|
-
* círculo(
|
|
1412
|
+
* fondo(c);
|
|
1413
|
+
* círculo(ratónX, ratónY, 50);
|
|
1414
|
+
* c.g = (c.g + 0.005) % 1;
|
|
1415
|
+
* };
|
|
1416
|
+
* @example
|
|
1417
|
+
* await crearLienzo(200);
|
|
1418
|
+
*
|
|
1419
|
+
* // (r, g, b, a)
|
|
1420
|
+
* let c = color(0, 1, 1, 0.2);
|
|
1421
|
+
*
|
|
1422
|
+
* q5.dibujar = function () {
|
|
1423
|
+
* relleno(c);
|
|
1424
|
+
* círculo(ratónX, ratónY, 50);
|
|
1383
1425
|
* };
|
|
1384
1426
|
*/
|
|
1385
|
-
function fondo(relleno: Color | Q5.Imagen): void;
|
|
1386
|
-
|
|
1387
1427
|
function color(c0: string | number | Color | number[], c1?: number, c2?: number, c3?: number): Color;
|
|
1388
1428
|
|
|
1429
|
+
/** 🎨
|
|
1430
|
+
* Establece el modo de color para el sketch, lo cual cambia cómo se
|
|
1431
|
+
* interpretan y muestran los colores.
|
|
1432
|
+
*
|
|
1433
|
+
* La gama de color es 'display-p3' por defecto, si el dispositivo soporta HDR.
|
|
1434
|
+
*
|
|
1435
|
+
* El modo de color por defecto es RGB en formato flotante.
|
|
1436
|
+
* @param {'rgb' | 'oklch' | 'hsl' | 'hsb'} modo modo de color
|
|
1437
|
+
* @param {1 | 255} formato formato de color (1 para flotante, 255 para entero)
|
|
1438
|
+
* @param {'srgb' | 'display-p3'} [gama] gama de color
|
|
1439
|
+
* @example
|
|
1440
|
+
* await crearLienzo(200);
|
|
1441
|
+
*
|
|
1442
|
+
* modoColor(RGB, 1);
|
|
1443
|
+
* relleno(1, 0, 0);
|
|
1444
|
+
* rect(-100, -100, 66, 200);
|
|
1445
|
+
* relleno(0, 1, 0);
|
|
1446
|
+
* rect(-34, -100, 67, 200);
|
|
1447
|
+
* relleno(0, 0, 1);
|
|
1448
|
+
* rect(33, -100, 67, 200);
|
|
1449
|
+
* @example
|
|
1450
|
+
* await crearLienzo(200);
|
|
1451
|
+
*
|
|
1452
|
+
* modoColor(OKLCH);
|
|
1453
|
+
*
|
|
1454
|
+
* relleno(0.25, 0.15, 0);
|
|
1455
|
+
* rect(-100, -100, 100, 200);
|
|
1456
|
+
*
|
|
1457
|
+
* relleno(0.75, 0.15, 0);
|
|
1458
|
+
* rect(0, -100, 100, 200);
|
|
1459
|
+
*/
|
|
1389
1460
|
function modoColor(modo: 'rgb' | 'oklch', formato: 1 | 255, gama: 'srgb' | 'display-p3'): void;
|
|
1390
1461
|
|
|
1462
|
+
/** 🎨
|
|
1463
|
+
* Los colores RGB tienen componentes `r`/`red` (rojo), `g`/`green` (verde), `b`/`blue` (azul),
|
|
1464
|
+
* y `a`/`alpha` (alfa).
|
|
1465
|
+
*
|
|
1466
|
+
* Por defecto cuando un lienzo está usando el espacio de color HDR "display-p3",
|
|
1467
|
+
* los colores rgb son mapeados a la gama completa P3, incluso cuando usan el
|
|
1468
|
+
* formato entero legado 0-255.
|
|
1469
|
+
* @example
|
|
1470
|
+
* await crearLienzo(200, 100);
|
|
1471
|
+
*
|
|
1472
|
+
* modoColor(RGB);
|
|
1473
|
+
*
|
|
1474
|
+
* fondo(1, 0, 0);
|
|
1475
|
+
*/
|
|
1391
1476
|
const RGB: 'rgb';
|
|
1392
1477
|
|
|
1478
|
+
/** 🎨
|
|
1479
|
+
* Los colores OKLCH tienen componentes `l`/`lightness` (luminosidad), `c`/`chroma` (croma),
|
|
1480
|
+
* `h`/`hue` (tono), y `a`/`alpha` (alfa). Es más intuitivo para los humanos
|
|
1481
|
+
* trabajar con color en estos términos que con RGB.
|
|
1482
|
+
*
|
|
1483
|
+
* OKLCH es perceptualmente uniforme, lo que significa que los colores con la
|
|
1484
|
+
* misma luminosidad y croma (colorido) parecerán tener
|
|
1485
|
+
* igual luminancia, independientemente del tono.
|
|
1486
|
+
*
|
|
1487
|
+
* OKLCH puede representar con precisión todos los colores visibles para el
|
|
1488
|
+
* ojo humano, a diferencia de muchos otros espacios de color que están limitados
|
|
1489
|
+
* a una gama. Los valores máximos de luminosidad y croma que
|
|
1490
|
+
* corresponden a los límites de la gama sRGB o P3 varían dependiendo del
|
|
1491
|
+
* tono. Los colores que están fuera de la gama serán recortados al
|
|
1492
|
+
* color dentro de la gama más cercano.
|
|
1493
|
+
*
|
|
1494
|
+
* Usa el [selector de color OKLCH](https://oklch.com) para encontrar
|
|
1495
|
+
* colores dentro de la gama.
|
|
1496
|
+
*
|
|
1497
|
+
* - `lightness`: 0 a 1
|
|
1498
|
+
* - `chroma`: 0 a ~0.4
|
|
1499
|
+
* - `hue`: 0 a 360
|
|
1500
|
+
* - `alpha`: 0 a 1
|
|
1501
|
+
* @example
|
|
1502
|
+
* await crearLienzo(200, 100);
|
|
1503
|
+
*
|
|
1504
|
+
* modoColor(OKLCH);
|
|
1505
|
+
*
|
|
1506
|
+
* fondo(0.64, 0.3, 30);
|
|
1507
|
+
* @example
|
|
1508
|
+
* await crearLienzo(200);
|
|
1509
|
+
* modoColor(OKLCH);
|
|
1510
|
+
*
|
|
1511
|
+
* q5.dibujar = function () {
|
|
1512
|
+
* fondo(0.7, 0.16, cuadroActual % 360);
|
|
1513
|
+
* };
|
|
1514
|
+
*/
|
|
1393
1515
|
const OKLCH: 'oklch';
|
|
1394
1516
|
|
|
1517
|
+
/** 🎨
|
|
1518
|
+
* Los colores HSL tienen componentes `h`/`hue` (tono), `s`/`saturation` (saturación),
|
|
1519
|
+
* `l`/`lightness` (luminosidad), y `a`/`alpha` (alfa).
|
|
1520
|
+
*
|
|
1521
|
+
* HSL fue creado en la década de 1970 para aproximar la percepción humana
|
|
1522
|
+
* del color, intercambiando precisión por cálculos más simples. No es
|
|
1523
|
+
* perceptualmente uniforme, por lo que colores con la misma luminosidad
|
|
1524
|
+
* pueden parecer más oscuros o más claros, dependiendo de su tono
|
|
1525
|
+
* y saturación. Sin embargo, los valores de luminosidad y saturación que
|
|
1526
|
+
* corresponden a los límites de la gama siempre son 100, independientemente del
|
|
1527
|
+
* tono. Esto puede hacer que HSL sea más fácil de trabajar que OKLCH.
|
|
1528
|
+
*
|
|
1529
|
+
* Los colores HSL son mapeados a la gama completa P3 cuando
|
|
1530
|
+
* se usa el espacio de color "display-p3".
|
|
1531
|
+
*
|
|
1532
|
+
* - `hue`: 0 a 360
|
|
1533
|
+
* - `saturation`: 0 a 100
|
|
1534
|
+
* - `lightness`: 0 a 100
|
|
1535
|
+
* - `alpha`: 0 a 1
|
|
1536
|
+
* @example
|
|
1537
|
+
* await crearLienzo(200, 100);
|
|
1538
|
+
*
|
|
1539
|
+
* modoColor(HSL);
|
|
1540
|
+
*
|
|
1541
|
+
* fondo(0, 100, 50);
|
|
1542
|
+
* @example
|
|
1543
|
+
* await crearLienzo(200, 220);
|
|
1544
|
+
* sinTrazo();
|
|
1545
|
+
*
|
|
1546
|
+
* modoColor(HSL);
|
|
1547
|
+
* for (let h = 0; h < 360; h += 10) {
|
|
1548
|
+
* for (let l = 0; l <= 100; l += 10) {
|
|
1549
|
+
* relleno(h, 100, l);
|
|
1550
|
+
* rect(h * (11 / 20) - 100, l * 2 - 110, 6, 20);
|
|
1551
|
+
* }
|
|
1552
|
+
* }
|
|
1553
|
+
*/
|
|
1395
1554
|
const HSL: 'hsl';
|
|
1396
1555
|
|
|
1556
|
+
/** 🎨
|
|
1557
|
+
* Los colores HSB tienen componentes `h`/`hue` (tono), `s`/`saturation` (saturación),
|
|
1558
|
+
* `b`/`brightness` (brillo) (también conocido como `v`/`value` (valor)), y `a`/`alpha` (alfa).
|
|
1559
|
+
*
|
|
1560
|
+
* HSB es similar a HSL, pero en lugar de luminosidad
|
|
1561
|
+
* (negro a blanco), usa brillo (negro a
|
|
1562
|
+
* color completo). Para producir blanco, establece el brillo
|
|
1563
|
+
* a 100 y la saturación a 0.
|
|
1564
|
+
*
|
|
1565
|
+
* - `hue`: 0 a 360
|
|
1566
|
+
* - `saturation`: 0 a 100
|
|
1567
|
+
* - `brightness`: 0 a 100
|
|
1568
|
+
* - `alpha`: 0 a 1
|
|
1569
|
+
* @example
|
|
1570
|
+
* await crearLienzo(200, 100);
|
|
1571
|
+
*
|
|
1572
|
+
* modoColor(HSB);
|
|
1573
|
+
*
|
|
1574
|
+
* fondo(0, 100, 100);
|
|
1575
|
+
* @example
|
|
1576
|
+
* await crearLienzo(200, 220);
|
|
1577
|
+
* sinTrazo();
|
|
1578
|
+
*
|
|
1579
|
+
* modoColor(HSB);
|
|
1580
|
+
* for (let h = 0; h < 360; h += 10) {
|
|
1581
|
+
* for (let b = 0; b <= 100; b += 10) {
|
|
1582
|
+
* relleno(h, 100, b);
|
|
1583
|
+
* rect(h * (11 / 20) - 100, b * 2 - 110, 6, 20);
|
|
1584
|
+
* }
|
|
1585
|
+
* }
|
|
1586
|
+
*/
|
|
1397
1587
|
const HSB: 'hsb';
|
|
1398
1588
|
|
|
1589
|
+
/** 🎨
|
|
1590
|
+
* Limita la gama de color al espacio de color sRGB.
|
|
1591
|
+
*
|
|
1592
|
+
* Si tu pantalla es capaz de HDR, nota que el rojo completo aparece
|
|
1593
|
+
* menos saturado y oscuro en este ejemplo, como lo haría en
|
|
1594
|
+
* una pantalla SDR.
|
|
1595
|
+
* @example
|
|
1596
|
+
* await crearLienzo(200, 100);
|
|
1597
|
+
*
|
|
1598
|
+
* modoColor(RGB, 1, SRGB);
|
|
1599
|
+
*
|
|
1600
|
+
* fondo(1, 0, 0);
|
|
1601
|
+
*/
|
|
1399
1602
|
const SRGB: 'srgb';
|
|
1400
1603
|
|
|
1604
|
+
/** 🎨
|
|
1605
|
+
* Expande la gama de color al espacio de color P3.
|
|
1606
|
+
*
|
|
1607
|
+
* Esta es la gama de color por defecto en dispositivos que soportan HDR.
|
|
1608
|
+
*
|
|
1609
|
+
* Si tu pantalla es capaz de HDR, nota que el rojo completo aparece
|
|
1610
|
+
* totalmente saturado y brillante en el siguiente ejemplo.
|
|
1611
|
+
* @example
|
|
1612
|
+
* await crearLienzo(200, 100);
|
|
1613
|
+
*
|
|
1614
|
+
* modoColor(RGB, 1, DISPLAY_P3);
|
|
1615
|
+
*
|
|
1616
|
+
* fondo(1, 0, 0);
|
|
1617
|
+
*/
|
|
1401
1618
|
const DISPLAY_P3: 'display-p3';
|
|
1402
1619
|
|
|
1620
|
+
/** 🎨
|
|
1621
|
+
* Dibuja sobre todo el lienzo con un color o una imagen.
|
|
1622
|
+
*
|
|
1623
|
+
* Al igual que la función [`color`](https://q5js.org/learn/#color),
|
|
1624
|
+
* esta función puede aceptar colores en una amplia gama de formatos:
|
|
1625
|
+
* cadena de color CSS, valor de escala de grises y valores de componentes de color.
|
|
1626
|
+
* @param {Color | Q5.Image} relleno un color o una imagen para dibujar
|
|
1627
|
+
* @example
|
|
1628
|
+
* await crearLienzo(200, 100);
|
|
1629
|
+
* fondo('crimson');
|
|
1630
|
+
* @example
|
|
1631
|
+
* q5.dibujar = function () {
|
|
1632
|
+
* fondo(0.5, 0.2);
|
|
1633
|
+
* círculo(ratónX, ratónY, 20);
|
|
1634
|
+
* };
|
|
1635
|
+
*/
|
|
1636
|
+
function fondo(relleno: Color | Q5.Imagen): void;
|
|
1637
|
+
|
|
1403
1638
|
class Color {
|
|
1639
|
+
|
|
1640
|
+
/** 🎨
|
|
1641
|
+
* Este constructor acepta estrictamente 4 números, que son los componentes del color.
|
|
1642
|
+
*
|
|
1643
|
+
* Usa la función `color` para mayor flexibilidad, ejecuta
|
|
1644
|
+
* este constructor internamente.
|
|
1645
|
+
*
|
|
1646
|
+
* `Color` no es realmente una clase en si misma, es una referencia a una
|
|
1647
|
+
* clase de color Q5 basada en el modo de color, formato y gama.
|
|
1648
|
+
*/
|
|
1404
1649
|
constructor(c0: number, c1: number, c2: number, c3: number);
|
|
1405
1650
|
|
|
1651
|
+
/** 🎨
|
|
1652
|
+
* Comprueba si este color es exactamente igual a otro color.
|
|
1653
|
+
*/
|
|
1406
1654
|
igual(otro: Color): boolean;
|
|
1407
1655
|
|
|
1656
|
+
/** 🎨
|
|
1657
|
+
* Comprueba si el color es el mismo que otro color,
|
|
1658
|
+
* ignorando sus valores alfa.
|
|
1659
|
+
*/
|
|
1408
1660
|
esMismoColor(otro: Color): boolean;
|
|
1409
1661
|
|
|
1662
|
+
/** 🎨
|
|
1663
|
+
* Produce una representación de cadena de color CSS.
|
|
1664
|
+
*/
|
|
1410
1665
|
toString(): string;
|
|
1411
1666
|
|
|
1667
|
+
/** 🎨
|
|
1668
|
+
* Un array de los componentes del color.
|
|
1669
|
+
*/
|
|
1412
1670
|
niveles: number[];
|
|
1413
1671
|
}
|
|
1414
1672
|
|
|
@@ -1803,128 +2061,338 @@ declare global {
|
|
|
1803
2061
|
* @example
|
|
1804
2062
|
* await crearLienzo(200);
|
|
1805
2063
|
*
|
|
1806
|
-
*
|
|
2064
|
+
* apilar();
|
|
1807
2065
|
* relleno('blue');
|
|
1808
2066
|
* trasladar(50, 50);
|
|
1809
2067
|
* círculo(0, 0, 80);
|
|
1810
|
-
*
|
|
2068
|
+
* desapilar();
|
|
1811
2069
|
*
|
|
1812
2070
|
* cuadrado(0, 0, 50);
|
|
1813
2071
|
*/
|
|
1814
|
-
function
|
|
2072
|
+
function apilar(): void;
|
|
1815
2073
|
|
|
1816
2074
|
/** 🦋
|
|
1817
2075
|
* Restaura la configuración de estilo de dibujo y transformaciones guardadas previamente.
|
|
1818
2076
|
* @example
|
|
1819
2077
|
* await crearLienzo(200);
|
|
1820
2078
|
*
|
|
1821
|
-
*
|
|
2079
|
+
* apilar();
|
|
1822
2080
|
* relleno('blue');
|
|
1823
2081
|
* trasladar(50, 50);
|
|
1824
2082
|
* círculo(0, 0, 80);
|
|
1825
|
-
*
|
|
2083
|
+
* desapilar();
|
|
1826
2084
|
*
|
|
1827
2085
|
* cuadrado(0, 0, 50);
|
|
1828
2086
|
*/
|
|
2087
|
+
function desapilar(): void;
|
|
2088
|
+
|
|
1829
2089
|
function recuperar(): void;
|
|
1830
2090
|
|
|
1831
2091
|
// 💻 display
|
|
1832
2092
|
|
|
1833
2093
|
/** 💻
|
|
1834
|
-
*
|
|
2094
|
+
* Personaliza cómo se presenta tu lienzo.
|
|
2095
|
+
* @param {string} modo NORMAL, CENTRO, o MAXIMIZADO
|
|
2096
|
+
* @param {string} calidadRenderizado SUAVE o PIXELADO
|
|
2097
|
+
* @param {number} escala también se puede dar como una cadena (por ejemplo "x2")
|
|
2098
|
+
* @example
|
|
2099
|
+
* await crearLienzo(50, 25);
|
|
2100
|
+
*
|
|
2101
|
+
* modoVisualización(CENTRO, PIXELADO, 4);
|
|
2102
|
+
*
|
|
2103
|
+
* círculo(0, 0, 16);
|
|
1835
2104
|
*/
|
|
1836
|
-
|
|
2105
|
+
function modoVisualización(): void;
|
|
1837
2106
|
|
|
1838
2107
|
/** 💻
|
|
1839
|
-
*
|
|
2108
|
+
* Una configuración de `modoVisualización`.
|
|
2109
|
+
*
|
|
2110
|
+
* El lienzo se escalará para llenar el elemento padre,
|
|
2111
|
+
* con bandas negras si es necesario para preservar su relación de aspecto.
|
|
1840
2112
|
*/
|
|
1841
|
-
|
|
2113
|
+
const MAXIMIZADO: 'maxed';
|
|
1842
2114
|
|
|
1843
2115
|
/** 💻
|
|
1844
|
-
*
|
|
2116
|
+
* Una calidad de renderizado de `modoVisualización`.
|
|
2117
|
+
*
|
|
2118
|
+
* Se usa escalado suave si el lienzo se escala.
|
|
1845
2119
|
*/
|
|
1846
|
-
|
|
2120
|
+
const SUAVE: 'smooth';
|
|
1847
2121
|
|
|
1848
2122
|
/** 💻
|
|
1849
|
-
*
|
|
2123
|
+
* Una calidad de renderizado de `modoVisualización`.
|
|
2124
|
+
*
|
|
2125
|
+
* Los píxeles se renderizan como cuadrados nítidos si el lienzo se escala.
|
|
1850
2126
|
*/
|
|
1851
|
-
|
|
2127
|
+
const PIXELADO: 'pixelated';
|
|
1852
2128
|
|
|
1853
2129
|
/** 💻
|
|
1854
|
-
*
|
|
1855
|
-
* @param {
|
|
2130
|
+
* Habilita o deshabilita el modo de pantalla completa.
|
|
2131
|
+
* @param {boolean} [v] booleano indicando si habilitar o deshabilitar el modo de pantalla completa
|
|
1856
2132
|
*/
|
|
1857
|
-
function
|
|
2133
|
+
function pantallaCompleta(v?: boolean): void;
|
|
1858
2134
|
|
|
1859
2135
|
/** 💻
|
|
1860
|
-
*
|
|
2136
|
+
* El ancho de la ventana.
|
|
2137
|
+
* @example
|
|
2138
|
+
* q5.dibujar = function () {
|
|
2139
|
+
* fondo(0.8);
|
|
2140
|
+
* tamañoTexto(64);
|
|
2141
|
+
* alineaciónTexto(CENTRO, CENTRO);
|
|
2142
|
+
* texto(anchoVentana, 0, 0);
|
|
2143
|
+
* };
|
|
1861
2144
|
*/
|
|
1862
|
-
|
|
2145
|
+
var anchoVentana: number;
|
|
1863
2146
|
|
|
1864
2147
|
/** 💻
|
|
1865
|
-
*
|
|
1866
|
-
*
|
|
1867
|
-
*
|
|
1868
|
-
*
|
|
1869
|
-
*
|
|
2148
|
+
* El alto de la ventana.
|
|
2149
|
+
* @example
|
|
2150
|
+
* q5.dibujar = function () {
|
|
2151
|
+
* fondo(0.8);
|
|
2152
|
+
* tamañoTexto(64);
|
|
2153
|
+
* alineaciónTexto(CENTRO, CENTRO);
|
|
2154
|
+
* texto(altoVentana, 0, 0);
|
|
2155
|
+
* };
|
|
1870
2156
|
*/
|
|
1871
|
-
|
|
2157
|
+
var altoVentana: number;
|
|
1872
2158
|
|
|
1873
2159
|
/** 💻
|
|
1874
|
-
*
|
|
2160
|
+
* El ancho del lienzo.
|
|
2161
|
+
* @example
|
|
2162
|
+
* await crearLienzo(200, 120);
|
|
2163
|
+
* círculo(0, 0, ancho);
|
|
1875
2164
|
*/
|
|
1876
|
-
|
|
2165
|
+
var ancho: number;
|
|
1877
2166
|
|
|
1878
2167
|
/** 💻
|
|
1879
|
-
*
|
|
1880
|
-
*
|
|
1881
|
-
*
|
|
1882
|
-
*
|
|
2168
|
+
* El alto del lienzo.
|
|
2169
|
+
* @example
|
|
2170
|
+
* await crearLienzo(200, 80);
|
|
2171
|
+
* círculo(0, 0, alto);
|
|
1883
2172
|
*/
|
|
1884
|
-
|
|
2173
|
+
var alto: number;
|
|
1885
2174
|
|
|
1886
2175
|
/** 💻
|
|
1887
|
-
*
|
|
1888
|
-
*
|
|
1889
|
-
*
|
|
2176
|
+
* La mitad del ancho del lienzo.
|
|
2177
|
+
* @example
|
|
2178
|
+
* await crearLienzo(200, 80);
|
|
2179
|
+
* círculo(0, 0, medioAncho);
|
|
1890
2180
|
*/
|
|
1891
|
-
|
|
2181
|
+
var medioAncho: number;
|
|
1892
2182
|
|
|
1893
2183
|
/** 💻
|
|
1894
|
-
*
|
|
1895
|
-
*
|
|
1896
|
-
*
|
|
2184
|
+
* La mitad del alto del lienzo.
|
|
2185
|
+
* @example
|
|
2186
|
+
* await crearLienzo(200, 80);
|
|
2187
|
+
* círculo(0, 0, medioAlto);
|
|
1897
2188
|
*/
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
const MAXIMIZADO: 'maxed';
|
|
1901
|
-
|
|
1902
|
-
const SUAVE: 'smooth';
|
|
1903
|
-
|
|
1904
|
-
const PIXELADO: 'pixelated';
|
|
2189
|
+
var medioAlto: number;
|
|
1905
2190
|
|
|
1906
|
-
|
|
2191
|
+
/** 💻
|
|
2192
|
+
* El elemento lienzo asociado con la instancia Q5.
|
|
2193
|
+
*
|
|
2194
|
+
* Si no se crea un lienzo explícitamente con `crearLienzo()`, pero se define una función q5 como `dibujar` o `alPresionarRatón`, se creará automáticamente un lienzo por defecto de tamaño 200x200.
|
|
2195
|
+
*/
|
|
2196
|
+
var lienzo: HTMLCanvasElement;
|
|
1907
2197
|
|
|
1908
|
-
|
|
2198
|
+
/** 💻
|
|
2199
|
+
* Redimensiona el lienzo al ancho y alto especificados.
|
|
2200
|
+
* @param {number} w ancho del lienzo
|
|
2201
|
+
* @param {number} h alto del lienzo
|
|
2202
|
+
* @example
|
|
2203
|
+
* await crearLienzo(200, 100);
|
|
2204
|
+
*
|
|
2205
|
+
* q5.dibujar = function () {
|
|
2206
|
+
* fondo(0.8);
|
|
2207
|
+
* };
|
|
2208
|
+
*
|
|
2209
|
+
* q5.alPresionarRatón = function () {
|
|
2210
|
+
* redimensionarLienzo(200, 200);
|
|
2211
|
+
* };
|
|
2212
|
+
*/
|
|
2213
|
+
function redimensionarLienzo(w: number, h: number): void;
|
|
1909
2214
|
|
|
1910
|
-
|
|
2215
|
+
/** 💻
|
|
2216
|
+
* El número de cuadros que se han mostrado desde que comenzó el programa.
|
|
2217
|
+
* @example
|
|
2218
|
+
* q5.dibujar = function () {
|
|
2219
|
+
* fondo(0.8);
|
|
2220
|
+
* tamañoTexto(64);
|
|
2221
|
+
* texto(cuadroActual, -92, 20);
|
|
2222
|
+
* };
|
|
2223
|
+
*/
|
|
2224
|
+
var cuadroActual: number;
|
|
1911
2225
|
|
|
1912
|
-
|
|
2226
|
+
/** 💻
|
|
2227
|
+
* Detiene el bucle de dibujo.
|
|
2228
|
+
* @example
|
|
2229
|
+
* q5.dibujar = function () {
|
|
2230
|
+
* círculo(cuadroActual * 5 - 100, 0, 80);
|
|
2231
|
+
* pausar();
|
|
2232
|
+
* };
|
|
2233
|
+
*/
|
|
2234
|
+
function pausar(): void;
|
|
1913
2235
|
|
|
1914
|
-
|
|
2236
|
+
/** 💻
|
|
2237
|
+
* Redibuja el lienzo n veces. Si no se proporciona ningún parámetro de entrada,
|
|
2238
|
+
* llama a la función de dibujo una vez.
|
|
2239
|
+
*
|
|
2240
|
+
* Esta es una función asíncrona.
|
|
2241
|
+
* @param {number} [n] número de veces para redibujar el lienzo, por defecto es 1
|
|
2242
|
+
* @example
|
|
2243
|
+
* await crearLienzo(200);
|
|
2244
|
+
* pausar();
|
|
2245
|
+
*
|
|
2246
|
+
* q5.dibujar = function () {
|
|
2247
|
+
* círculo(cuadroActual * 5 - 100, 0, 80);
|
|
2248
|
+
* };
|
|
2249
|
+
* q5.alPresionarRatón = function () {
|
|
2250
|
+
* redibujar(10);
|
|
2251
|
+
* };
|
|
2252
|
+
*/
|
|
2253
|
+
function redibujar(n?: number): void;
|
|
1915
2254
|
|
|
1916
|
-
|
|
2255
|
+
/** 💻
|
|
2256
|
+
* Inicia el bucle de dibujo de nuevo si estaba detenido.
|
|
2257
|
+
* @example
|
|
2258
|
+
* await crearLienzo(200);
|
|
2259
|
+
* pausar();
|
|
2260
|
+
*
|
|
2261
|
+
* q5.dibujar = function () {
|
|
2262
|
+
* círculo(cuadroActual * 5 - 100, 0, 80);
|
|
2263
|
+
* };
|
|
2264
|
+
* q5.alPresionarRatón = function () {
|
|
2265
|
+
* reanudar();
|
|
2266
|
+
* };
|
|
2267
|
+
*/
|
|
2268
|
+
function reanudar(): void;
|
|
1917
2269
|
|
|
1918
|
-
|
|
2270
|
+
/** 💻
|
|
2271
|
+
* Establece la frecuencia de fotogramas objetivo u obtiene una aproximación de la
|
|
2272
|
+
* frecuencia de fotogramas actual del sketch.
|
|
2273
|
+
*
|
|
2274
|
+
* Incluso cuando el sketch se está ejecutando a una frecuencia de fotogramas consistente,
|
|
2275
|
+
* el valor actual de la frecuencia de fotogramas fluctuará. Usa las herramientas de desarrollador
|
|
2276
|
+
* de tu navegador web para un análisis de rendimiento más preciso.
|
|
2277
|
+
* @param {number} [hertz] frecuencia de fotogramas objetivo, por defecto es 60
|
|
2278
|
+
* @returns {number} frecuencia de fotogramas actual
|
|
2279
|
+
* @example
|
|
2280
|
+
* q5.dibujar = function () {
|
|
2281
|
+
* fondo(0.8);
|
|
2282
|
+
*
|
|
2283
|
+
* if (ratónPresionado) frecuenciaRefresco(10);
|
|
2284
|
+
* else frecuenciaRefresco(60);
|
|
2285
|
+
*
|
|
2286
|
+
* círculo((cuadroActual % 200) - 100, 0, 80);
|
|
2287
|
+
* };
|
|
2288
|
+
* @example
|
|
2289
|
+
* q5.dibujar = function () {
|
|
2290
|
+
* fondo(0.8);
|
|
2291
|
+
* tamañoTexto(64);
|
|
2292
|
+
* texto(redondear(frecuenciaRefresco()), -35, 20);
|
|
2293
|
+
* };
|
|
2294
|
+
*/
|
|
2295
|
+
function frecuenciaRefresco(hertz?: number): number;
|
|
1919
2296
|
|
|
2297
|
+
/** 💻
|
|
2298
|
+
* La frecuencia de fotogramas deseada del sketch.
|
|
2299
|
+
* @returns {number} frecuencia de fotogramas objetivo
|
|
2300
|
+
* @example
|
|
2301
|
+
* q5.dibujar = function () {
|
|
2302
|
+
* fondo(0.8);
|
|
2303
|
+
* tamañoTexto(64);
|
|
2304
|
+
*
|
|
2305
|
+
* texto(obtenerTasaFotogramasObjetivo(), -35, 20);
|
|
2306
|
+
* };
|
|
2307
|
+
*/
|
|
1920
2308
|
function obtenerTasaFotogramasObjetivo(): number;
|
|
1921
2309
|
|
|
2310
|
+
/** 💻
|
|
2311
|
+
* Obtiene los FPS actuales, en términos de cuántos fotogramas podrían generarse
|
|
2312
|
+
* en un segundo, lo cual puede ser más alto que la frecuencia de fotogramas objetivo.
|
|
2313
|
+
*
|
|
2314
|
+
* Usa las herramientas de desarrollador de tu navegador web para un análisis
|
|
2315
|
+
* de rendimiento más profundo.
|
|
2316
|
+
* @returns {number} fotogramas por segundo
|
|
2317
|
+
* @example
|
|
2318
|
+
* q5.dibujar = function () {
|
|
2319
|
+
* fondo(0.8);
|
|
2320
|
+
* frecuenciaRefresco(1);
|
|
2321
|
+
* tamañoTexto(64);
|
|
2322
|
+
*
|
|
2323
|
+
* texto(obtenerFPS(), -92, 20);
|
|
2324
|
+
* };
|
|
2325
|
+
*/
|
|
1922
2326
|
function obtenerFPS(): number;
|
|
1923
2327
|
|
|
2328
|
+
/** 💻
|
|
2329
|
+
* Se ejecuta después de cada llamada a la función `dibujar` y procesos de addons de q5 post-dibujo, si los hay.
|
|
2330
|
+
*
|
|
2331
|
+
* Útil para añadir efectos de post-procesamiento cuando no es posible
|
|
2332
|
+
* hacerlo al final de la función `dibujar`, como cuando se usan
|
|
2333
|
+
* addons como p5play que auto-dibujan al lienzo después de que
|
|
2334
|
+
* la función `dibujar` se ejecuta.
|
|
2335
|
+
*/
|
|
1924
2336
|
function postProcesar(): void;
|
|
1925
2337
|
|
|
2338
|
+
/** 💻
|
|
2339
|
+
* Establece la densidad de píxeles del lienzo.
|
|
2340
|
+
* @param {number} v valor de densidad de píxeles
|
|
2341
|
+
* @returns {number} densidad de píxeles
|
|
2342
|
+
* @example
|
|
2343
|
+
* await crearLienzo(200, 100);
|
|
2344
|
+
* fondo(0.8);
|
|
2345
|
+
* densidadPíxeles(1);
|
|
2346
|
+
* círculo(0, 0, 80);
|
|
2347
|
+
*/
|
|
2348
|
+
function densidadPíxeles(): void;
|
|
2349
|
+
|
|
2350
|
+
/** 💻
|
|
2351
|
+
* Devuelve la densidad de visualización actual.
|
|
2352
|
+
*
|
|
2353
|
+
* En la mayoría de pantallas modernas, este valor será 2 o 3.
|
|
2354
|
+
* @returns {number} densidad de visualización
|
|
2355
|
+
* @example
|
|
2356
|
+
* await crearLienzo(200, 100);
|
|
2357
|
+
* fondo(0.8);
|
|
2358
|
+
* tamañoTexto(64);
|
|
2359
|
+
* texto(densidadVisualización(), -90, 6);
|
|
2360
|
+
*/
|
|
2361
|
+
function densidadVisualización(): void;
|
|
2362
|
+
|
|
2363
|
+
/** 💻
|
|
2364
|
+
* El tiempo pasado desde que se dibujó el último fotograma.
|
|
2365
|
+
*
|
|
2366
|
+
* Con la frecuencia de fotogramas por defecto de 60, el tiempo delta será
|
|
2367
|
+
* aproximadamente 16.6
|
|
2368
|
+
*
|
|
2369
|
+
* Se puede usar para mantener movimientos atados al tiempo real si el sketch
|
|
2370
|
+
* a menudo cae por debajo de la frecuencia de fotogramas objetivo. Aunque si las frecuencias
|
|
2371
|
+
* de fotogramas son consistentemente bajas, considera reducir la frecuencia
|
|
2372
|
+
* de fotogramas objetivo.
|
|
2373
|
+
* @example
|
|
2374
|
+
* q5.dibujar = function () {
|
|
2375
|
+
* fondo(0.8);
|
|
2376
|
+
* texto(deltaTiempo, -90, 6);
|
|
2377
|
+
* };
|
|
2378
|
+
* @example
|
|
2379
|
+
* let x = -100;
|
|
2380
|
+
* q5.dibujar = function () {
|
|
2381
|
+
* fondo(0.8);
|
|
2382
|
+
* // simular caídas de frecuencia de fotogramas
|
|
2383
|
+
* frecuenciaRefresco(aleatorio(30, 60));
|
|
2384
|
+
*
|
|
2385
|
+
* x += deltaTiempo * 0.2;
|
|
2386
|
+
* if (x > 100) x = -100;
|
|
2387
|
+
* círculo(x, 0, 20);
|
|
2388
|
+
* };
|
|
2389
|
+
*/
|
|
1926
2390
|
var deltaTiempo: number;
|
|
1927
2391
|
|
|
2392
|
+
/** 💻
|
|
2393
|
+
* El contexto de renderizado 2D para el lienzo, si se usa el renderizador
|
|
2394
|
+
* Canvas2D.
|
|
2395
|
+
*/
|
|
1928
2396
|
var contextoDibujo: CanvasRenderingContext2D;
|
|
1929
2397
|
|
|
1930
2398
|
// 🧮 math
|
|
@@ -2484,7 +2952,7 @@ declare global {
|
|
|
2484
2952
|
* @example
|
|
2485
2953
|
* await crearLienzo(200, 100);
|
|
2486
2954
|
*
|
|
2487
|
-
* let btn = crearBotón('
|
|
2955
|
+
* let btn = crearBotón('¡Clic aqui!');
|
|
2488
2956
|
*
|
|
2489
2957
|
* btn.addEventListener('click', () => {
|
|
2490
2958
|
* fondo(aleatorio(0.4, 1));
|
|
@@ -2503,7 +2971,7 @@ declare global {
|
|
|
2503
2971
|
* @example
|
|
2504
2972
|
* await crearLienzo(200, 100);
|
|
2505
2973
|
*
|
|
2506
|
-
* let casilla = crearCasilla('
|
|
2974
|
+
* let casilla = crearCasilla('¡Marca aquí!');
|
|
2507
2975
|
* casilla.label.style.color = 'lime';
|
|
2508
2976
|
*
|
|
2509
2977
|
* casilla.addEventListener('input', () => {
|
|
@@ -2521,11 +2989,11 @@ declare global {
|
|
|
2521
2989
|
* @example
|
|
2522
2990
|
* await crearLienzo(200, 100);
|
|
2523
2991
|
*
|
|
2524
|
-
* let
|
|
2525
|
-
*
|
|
2992
|
+
* let selección = crearSelectorColor();
|
|
2993
|
+
* selección.value = '#fd7575';
|
|
2526
2994
|
*
|
|
2527
2995
|
* q5.dibujar = function () {
|
|
2528
|
-
* fondo(
|
|
2996
|
+
* fondo(selección.value);
|
|
2529
2997
|
* };
|
|
2530
2998
|
*/
|
|
2531
2999
|
function crearSelectorColor(valor?: string): HTMLInputElement;
|
|
@@ -2557,7 +3025,7 @@ declare global {
|
|
|
2557
3025
|
* tamañoTexto(64);
|
|
2558
3026
|
*
|
|
2559
3027
|
* let entrada = crearEntrada();
|
|
2560
|
-
* entrada.placeholder = '
|
|
3028
|
+
* entrada.placeholder = '¡Teclea aquí!';
|
|
2561
3029
|
* entrada.size(200, 32);
|
|
2562
3030
|
*
|
|
2563
3031
|
* entrada.addEventListener('input', () => {
|
|
@@ -2574,7 +3042,7 @@ declare global {
|
|
|
2574
3042
|
* await crearLienzo(200, 50);
|
|
2575
3043
|
* fondo('coral');
|
|
2576
3044
|
*
|
|
2577
|
-
* let p = crearP('
|
|
3045
|
+
* let p = crearP('¡Hola, mundo!');
|
|
2578
3046
|
* p.style.color = 'pink';
|
|
2579
3047
|
*/
|
|
2580
3048
|
function crearP(contenido?: string): HTMLParagraphElement;
|
|
@@ -2591,7 +3059,7 @@ declare global {
|
|
|
2591
3059
|
* await crearLienzo(200, 160);
|
|
2592
3060
|
*
|
|
2593
3061
|
* let radio = crearOpciónes();
|
|
2594
|
-
* radio.option('
|
|
3062
|
+
* radio.option('cuadrado', '1').option('círculo', '2');
|
|
2595
3063
|
*
|
|
2596
3064
|
* q5.dibujar = function () {
|
|
2597
3065
|
* fondo(0.8);
|
|
@@ -2618,7 +3086,7 @@ declare global {
|
|
|
2618
3086
|
* @example
|
|
2619
3087
|
* await crearLienzo(200, 100);
|
|
2620
3088
|
*
|
|
2621
|
-
* let sel = crearSelección('
|
|
3089
|
+
* let sel = crearSelección('Seleccionar un opcion');
|
|
2622
3090
|
* sel.option('Red', '#f55').option('Green', '#5f5');
|
|
2623
3091
|
*
|
|
2624
3092
|
* sel.addEventListener('change', () => {
|
|
@@ -3038,68 +3506,239 @@ declare global {
|
|
|
3038
3506
|
* await crearLienzo(200);
|
|
3039
3507
|
* fondo(0.8);
|
|
3040
3508
|
*
|
|
3041
|
-
* let v = crearVector(
|
|
3509
|
+
* let v = crearVector(0, 0);
|
|
3042
3510
|
* círculo(v.x, v.y, 50);
|
|
3043
3511
|
*/
|
|
3044
3512
|
function crearVector(): void;
|
|
3045
3513
|
|
|
3046
|
-
/** ↗
|
|
3047
|
-
* Una clase para describir un vector bidimensional o tridimensional, específicamente un vector euclidiano (también conocido como geométrico). Un vector es una entidad que tiene tanto magnitud como dirección. El tipo de datos almacena los componentes del vector (x, y para 2D, y z para 3D). La magnitud y dirección se pueden acceder a través de los métodos `mag()` y `heading()`.
|
|
3048
|
-
* @param {number} [x] componente x del vector
|
|
3049
|
-
* @param {number} [y] componente y del vector
|
|
3050
|
-
* @param {number} [z] componente z del vector
|
|
3051
|
-
* @param {number} [w] componente w del vector
|
|
3052
|
-
* @returns {Vector} este vector
|
|
3053
|
-
* @returns {Vector} copia del vector
|
|
3054
|
-
* @param {number | Vector} x componente x del vector o Vector a sumar
|
|
3055
|
-
* @param {number} [y] componente y del vector
|
|
3056
|
-
* @param {number} [z] componente z del vector
|
|
3057
|
-
* @returns {Vector} este vector
|
|
3058
|
-
* @param {number | Vector} x componente x del vector o Vector a restar
|
|
3059
|
-
* @param {number} [y] componente y del vector
|
|
3060
|
-
* @param {number} [z] componente z del vector
|
|
3061
|
-
* @returns {Vector} este vector
|
|
3062
|
-
* @param {number} n escalar por el cual multiplicar
|
|
3063
|
-
* @returns {Vector} este vector
|
|
3064
|
-
* @param {number} n escalar por el cual dividir
|
|
3065
|
-
* @returns {Vector} este vector
|
|
3066
|
-
* @returns {number} magnitud del vector
|
|
3067
|
-
* @returns {number} magnitud del vector al cuadrado
|
|
3068
|
-
* @param {Vector} v vector con el cual hacer producto punto
|
|
3069
|
-
* @returns {number} producto punto
|
|
3070
|
-
* @param {Vector} v vector con el cual hacer producto cruz
|
|
3071
|
-
* @returns {Vector} producto cruz
|
|
3072
|
-
* @param {Vector} v vector al cual calcular distancia
|
|
3073
|
-
* @returns {number} distancia
|
|
3074
|
-
* @returns {Vector} este vector
|
|
3075
|
-
* @param {number} max magnitud máxima
|
|
3076
|
-
* @returns {Vector} este vector
|
|
3077
|
-
* @param {number} len nueva longitud para este vector
|
|
3078
|
-
* @returns {Vector} este vector
|
|
3079
|
-
* @returns {number} el ángulo de rotación
|
|
3080
|
-
* @param {number} ángulo ángulo de rotación
|
|
3081
|
-
* @returns {Vector} este vector
|
|
3082
|
-
* @param {Vector} v el vector x, y, z
|
|
3083
|
-
* @returns {number} el ángulo entre
|
|
3084
|
-
* @param {Vector} v el vector x, y, z
|
|
3085
|
-
* @param {number} amt la cantidad de interpolación; 0.0 es el vector antiguo, 1.0 es el nuevo vector, 0.5 está a mitad de camino
|
|
3086
|
-
* @returns {Vector} este vector
|
|
3087
|
-
* @param {Vector} superficieNormal el vector normal a la superficie
|
|
3088
|
-
* @returns {Vector} este vector
|
|
3089
|
-
* @returns {number[]} array de flotantes
|
|
3090
|
-
* @param {Vector} v el vector a comparar
|
|
3091
|
-
* @returns {boolean} verdadero si los vectores son iguales
|
|
3092
|
-
* @param {number} ángulo el ángulo deseado
|
|
3093
|
-
* @param {number} [longitud] longitud del nuevo vector (por defecto a 1)
|
|
3094
|
-
* @returns {Vector} nuevo objeto Vector
|
|
3095
|
-
* @returns {Vector} nuevo objeto Vector
|
|
3096
|
-
* @returns {Vector} nuevo objeto Vector
|
|
3097
|
-
*/
|
|
3098
3514
|
class Vector {
|
|
3099
3515
|
|
|
3100
|
-
|
|
3516
|
+
/** ↗
|
|
3517
|
+
* Una clase para describir un vector bidimensional o tridimensional, específicamente un vector euclidiano (también conocido como geométrico). Un vector es una entidad que tiene tanto magnitud como dirección. El tipo de datos almacena los componentes del vector (x, y para 2D, y z para 3D). La magnitud y dirección se pueden acceder a través de los métodos `mag()` y `heading()`.
|
|
3518
|
+
*/
|
|
3519
|
+
constructor(x: number, y: number, z?: number);
|
|
3520
|
+
|
|
3521
|
+
/** ↗
|
|
3522
|
+
* El componente x del vector.
|
|
3523
|
+
*/
|
|
3524
|
+
x: number;
|
|
3525
|
+
|
|
3526
|
+
/** ↗
|
|
3527
|
+
* El componente y del vector.
|
|
3528
|
+
*/
|
|
3529
|
+
y: number;
|
|
3530
|
+
|
|
3531
|
+
/** ↗
|
|
3532
|
+
* El componente z del vector.
|
|
3533
|
+
*/
|
|
3534
|
+
z: number;
|
|
3535
|
+
|
|
3536
|
+
/** ↗
|
|
3537
|
+
* El componente w del vector.
|
|
3538
|
+
*/
|
|
3539
|
+
w(): void;
|
|
3540
|
+
|
|
3541
|
+
/** ↗
|
|
3542
|
+
* Establece los componentes x, y, y z del vector.
|
|
3543
|
+
* @param {number} [x] componente x del vector
|
|
3544
|
+
* @param {number} [y] componente y del vector
|
|
3545
|
+
* @param {number} [z] componente z del vector
|
|
3546
|
+
* @param {number} [w] componente w del vector
|
|
3547
|
+
* @returns {Vector} este vector
|
|
3548
|
+
*/
|
|
3549
|
+
set(): void;
|
|
3550
|
+
|
|
3551
|
+
/** ↗
|
|
3552
|
+
* Devuelve una copia del vector.
|
|
3553
|
+
* @returns {Vector} copia del vector
|
|
3554
|
+
*/
|
|
3555
|
+
copy(): void;
|
|
3556
|
+
|
|
3557
|
+
/** ↗
|
|
3558
|
+
* Suma x, y, y z componentes a un vector, suma un vector a otro, o suma dos vectores independientes.
|
|
3559
|
+
* @param {number | Vector} x componente x del vector o Vector a sumar
|
|
3560
|
+
* @param {number} [y] componente y del vector
|
|
3561
|
+
* @param {number} [z] componente z del vector
|
|
3562
|
+
* @returns {Vector} este vector
|
|
3563
|
+
*/
|
|
3564
|
+
add(): void;
|
|
3565
|
+
|
|
3566
|
+
/** ↗
|
|
3567
|
+
* Resta x, y, y z componentes de un vector, resta un vector de otro, o resta dos vectores independientes.
|
|
3568
|
+
* @param {number | Vector} x componente x del vector o Vector a restar
|
|
3569
|
+
* @param {number} [y] componente y del vector
|
|
3570
|
+
* @param {number} [z] componente z del vector
|
|
3571
|
+
* @returns {Vector} este vector
|
|
3572
|
+
*/
|
|
3573
|
+
sub(): void;
|
|
3574
|
+
|
|
3575
|
+
/** ↗
|
|
3576
|
+
* Multiplica el vector por un escalar.
|
|
3577
|
+
* @param {number} n escalar por el cual multiplicar
|
|
3578
|
+
* @returns {Vector} este vector
|
|
3579
|
+
*/
|
|
3580
|
+
mult(n: number | Vector): Vector;
|
|
3581
|
+
|
|
3582
|
+
/** ↗
|
|
3583
|
+
* Divide el vector por un escalar.
|
|
3584
|
+
* @param {number} n escalar por el cual dividir
|
|
3585
|
+
* @returns {Vector} este vector
|
|
3586
|
+
*/
|
|
3587
|
+
div(n: number | Vector): Vector;
|
|
3588
|
+
|
|
3589
|
+
/** ↗
|
|
3590
|
+
* Calcula la magnitud (longitud) del vector y devuelve el resultado como un flotante (esto es simplemente la ecuación `sqrt(x*x + y*y + z*z)`).
|
|
3591
|
+
* @returns {number} magnitud del vector
|
|
3592
|
+
*/
|
|
3593
|
+
mag(): number;
|
|
3594
|
+
|
|
3595
|
+
/** ↗
|
|
3596
|
+
* Calcula la magnitud (longitud) del vector al cuadrado y devuelve el resultado como un flotante (esto es simplemente la ecuación `x*x + y*y + z*z`).
|
|
3597
|
+
* @returns {number} magnitud del vector al cuadrado
|
|
3598
|
+
*/
|
|
3599
|
+
magSq(): void;
|
|
3600
|
+
|
|
3601
|
+
/** ↗
|
|
3602
|
+
* Calcula el producto punto de dos vectores.
|
|
3603
|
+
* @param {Vector} v vector con el cual hacer producto punto
|
|
3604
|
+
* @returns {number} producto punto
|
|
3605
|
+
*/
|
|
3606
|
+
dot(): void;
|
|
3607
|
+
|
|
3608
|
+
/** ↗
|
|
3609
|
+
* Calcula el producto cruz de dos vectores.
|
|
3610
|
+
* @param {Vector} v vector con el cual hacer producto cruz
|
|
3611
|
+
* @returns {Vector} producto cruz
|
|
3612
|
+
*/
|
|
3613
|
+
cross(): void;
|
|
3614
|
+
|
|
3615
|
+
/** ↗
|
|
3616
|
+
* Calcula la distancia euclidiana entre dos puntos (considerando un punto como un objeto vector).
|
|
3617
|
+
* @param {Vector} v vector al cual calcular distancia
|
|
3618
|
+
* @returns {number} distancia
|
|
3619
|
+
*/
|
|
3620
|
+
dist(v: Vector): number;
|
|
3621
|
+
|
|
3622
|
+
/** ↗
|
|
3623
|
+
* Normaliza el vector a longitud 1 (hace que sea un vector unitario).
|
|
3624
|
+
* @returns {Vector} este vector
|
|
3625
|
+
*/
|
|
3626
|
+
normalize(): void;
|
|
3627
|
+
|
|
3628
|
+
/** ↗
|
|
3629
|
+
* Limita la magnitud de este vector al valor usado para el parámetro `max`.
|
|
3630
|
+
* @param {number} max magnitud máxima
|
|
3631
|
+
* @returns {Vector} este vector
|
|
3632
|
+
*/
|
|
3633
|
+
limit(): void;
|
|
3634
|
+
|
|
3635
|
+
/** ↗
|
|
3636
|
+
* Establece la magnitud de este vector al valor usado para el parámetro `len`.
|
|
3637
|
+
* @param {number} len nueva longitud para este vector
|
|
3638
|
+
* @returns {Vector} este vector
|
|
3639
|
+
*/
|
|
3640
|
+
setMag(): void;
|
|
3641
|
+
|
|
3642
|
+
/** ↗
|
|
3643
|
+
* Calcula el ángulo de rotación para este vector (solo vectores 2D).
|
|
3644
|
+
* @returns {number} el ángulo de rotación
|
|
3645
|
+
*/
|
|
3646
|
+
heading(): void;
|
|
3647
|
+
|
|
3648
|
+
/** ↗
|
|
3649
|
+
* Rota el vector por un ángulo (solo vectores 2D), la magnitud permanece igual.
|
|
3650
|
+
* @param {number} ángulo ángulo de rotación
|
|
3651
|
+
* @returns {Vector} este vector
|
|
3652
|
+
*/
|
|
3653
|
+
rotate(): void;
|
|
3654
|
+
|
|
3655
|
+
/** ↗
|
|
3656
|
+
* Calcula y devuelve el ángulo entre dos vectores.
|
|
3657
|
+
* @param {Vector} v el vector x, y, z
|
|
3658
|
+
* @returns {number} el ángulo entre
|
|
3659
|
+
*/
|
|
3660
|
+
angleBetween(): void;
|
|
3661
|
+
|
|
3662
|
+
/** ↗
|
|
3663
|
+
* Interpola linealmente el vector a otro vector.
|
|
3664
|
+
* @param {Vector} v el vector x, y, z
|
|
3665
|
+
* @param {number} amt la cantidad de interpolación; 0.0 es el vector antiguo, 1.0 es el nuevo vector, 0.5 está a mitad de camino
|
|
3666
|
+
* @returns {Vector} este vector
|
|
3667
|
+
*/
|
|
3668
|
+
lerp(v: Vector, amt: number): Vector;
|
|
3669
|
+
|
|
3670
|
+
/** ↗
|
|
3671
|
+
* Refleja el vector entrante sobre una normal al muro.
|
|
3672
|
+
* @param {Vector} superficieNormal el vector normal a la superficie
|
|
3673
|
+
* @returns {Vector} este vector
|
|
3674
|
+
*/
|
|
3675
|
+
reflect(): void;
|
|
3676
|
+
|
|
3677
|
+
/** ↗
|
|
3678
|
+
* Devuelve una representación de este vector como un array de flotantes.
|
|
3679
|
+
* @returns {number[]} array de flotantes
|
|
3680
|
+
*/
|
|
3681
|
+
array(): void;
|
|
3682
|
+
|
|
3683
|
+
/** ↗
|
|
3684
|
+
* Comprueba si los componentes x, y, y z del vector son iguales a los componentes x, y, y z de otro vector.
|
|
3685
|
+
* @param {Vector} v el vector a comparar
|
|
3686
|
+
* @returns {boolean} verdadero si los vectores son iguales
|
|
3687
|
+
*/
|
|
3688
|
+
equals(): void;
|
|
3689
|
+
|
|
3690
|
+
/** ↗
|
|
3691
|
+
* Hace un nuevo vector 2D desde un ángulo de longitud 1.
|
|
3692
|
+
* @param {number} ángulo el ángulo deseado
|
|
3693
|
+
* @param {number} [longitud] longitud del nuevo vector (por defecto a 1)
|
|
3694
|
+
* @returns {Vector} nuevo objeto Vector
|
|
3695
|
+
*/
|
|
3696
|
+
fromAngle(): void;
|
|
3697
|
+
|
|
3698
|
+
/** ↗
|
|
3699
|
+
* Hace un nuevo vector 2D aleatorio con una magnitud de 1.
|
|
3700
|
+
* @returns {Vector} nuevo objeto Vector
|
|
3701
|
+
*/
|
|
3702
|
+
random2D(): void;
|
|
3703
|
+
|
|
3704
|
+
/** ↗
|
|
3705
|
+
* Hace un nuevo vector 3D aleatorio con una magnitud de 1.
|
|
3706
|
+
* @returns {Vector} nuevo objeto Vector
|
|
3707
|
+
*/
|
|
3708
|
+
random3D(): void;
|
|
3709
|
+
sumar(v: Vector): Vector;
|
|
3710
|
+
|
|
3711
|
+
restar(v: Vector): Vector;
|
|
3712
|
+
|
|
3713
|
+
normalizar(): Vector;
|
|
3714
|
+
|
|
3715
|
+
establecerMag(len: number): Vector;
|
|
3716
|
+
|
|
3717
|
+
punto(v: Vector): number;
|
|
3718
|
+
|
|
3719
|
+
cruz(v: Vector): Vector;
|
|
3720
|
+
|
|
3721
|
+
copiar(): Vector;
|
|
3722
|
+
|
|
3723
|
+
establecer(x: number, y: number, z?: number): void;
|
|
3101
3724
|
|
|
3102
|
-
|
|
3725
|
+
limitar(max: number): Vector;
|
|
3726
|
+
|
|
3727
|
+
rumbo(): number;
|
|
3728
|
+
|
|
3729
|
+
establecerRumbo(angulo: number): Vector;
|
|
3730
|
+
|
|
3731
|
+
rotar(angulo: number): Vector;
|
|
3732
|
+
|
|
3733
|
+
slerp(v: Vector, amt: number): Vector;
|
|
3734
|
+
|
|
3735
|
+
static desdeÁngulo(angulo: number, longitud?: number): Vector;
|
|
3736
|
+
|
|
3737
|
+
}
|
|
3738
|
+
|
|
3739
|
+
// 🖌 shaping
|
|
3740
|
+
|
|
3741
|
+
/** 🖌
|
|
3103
3742
|
* Dibuja un arco, que es una sección de una elipse.
|
|
3104
3743
|
*
|
|
3105
3744
|
* `modoEliptico` afecta cómo se dibuja el arco.
|
|
@@ -3118,9 +3757,9 @@ declare global {
|
|
|
3118
3757
|
*
|
|
3119
3758
|
* arco(0, 0, 160, 160, 0.8, -0.8);
|
|
3120
3759
|
*/
|
|
3121
|
-
|
|
3760
|
+
function arco(x: number, y: number, w: number, h: number, inicio: number, fin: number, modo?: number): void;
|
|
3122
3761
|
|
|
3123
|
-
|
|
3762
|
+
/** 🖌
|
|
3124
3763
|
* Dibuja una curva.
|
|
3125
3764
|
* @example
|
|
3126
3765
|
* await crearLienzo(200, 100);
|
|
@@ -3128,9 +3767,9 @@ declare global {
|
|
|
3128
3767
|
*
|
|
3129
3768
|
* curva(-100, -200, -50, 0, 50, 0, 100, -200);
|
|
3130
3769
|
*/
|
|
3131
|
-
|
|
3770
|
+
function curva(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number): void;
|
|
3132
3771
|
|
|
3133
|
-
|
|
3772
|
+
/** 🖌
|
|
3134
3773
|
* Establece la cantidad de segmentos de línea recta usados para hacer una curva.
|
|
3135
3774
|
*
|
|
3136
3775
|
* Solo tiene efecto en q5 WebGPU.
|
|
@@ -3144,40 +3783,40 @@ declare global {
|
|
|
3144
3783
|
* trazo(0, 1, 1);
|
|
3145
3784
|
* curva(-100, -200, -50, 0, 50, 0, 100, -200);
|
|
3146
3785
|
*/
|
|
3147
|
-
|
|
3786
|
+
function detalleCurva(val: number): void;
|
|
3148
3787
|
|
|
3149
|
-
|
|
3788
|
+
/** 🖌
|
|
3150
3789
|
* Comienza a almacenar vértices para una forma convexa.
|
|
3151
3790
|
*/
|
|
3152
|
-
|
|
3791
|
+
function empezarForma(): void;
|
|
3153
3792
|
|
|
3154
|
-
|
|
3793
|
+
/** 🖌
|
|
3155
3794
|
* Termina de almacenar vértices para una forma convexa.
|
|
3156
3795
|
*/
|
|
3157
|
-
|
|
3796
|
+
function terminarForma(): void;
|
|
3158
3797
|
|
|
3159
|
-
|
|
3798
|
+
/** 🖌
|
|
3160
3799
|
* Comienza a almacenar vértices para un contorno.
|
|
3161
3800
|
*
|
|
3162
3801
|
* No disponible en q5 WebGPU.
|
|
3163
3802
|
*/
|
|
3164
|
-
|
|
3803
|
+
function empezarContorno(): void;
|
|
3165
3804
|
|
|
3166
|
-
|
|
3805
|
+
/** 🖌
|
|
3167
3806
|
* Termina de almacenar vértices para un contorno.
|
|
3168
3807
|
*
|
|
3169
3808
|
* No disponible en q5 WebGPU.
|
|
3170
3809
|
*/
|
|
3171
|
-
|
|
3810
|
+
function terminarContorno(): void;
|
|
3172
3811
|
|
|
3173
|
-
|
|
3812
|
+
/** 🖌
|
|
3174
3813
|
* Especifica un vértice en una forma.
|
|
3175
3814
|
* @param {number} x coordenada-x
|
|
3176
3815
|
* @param {number} y coordenada-y
|
|
3177
3816
|
*/
|
|
3178
|
-
|
|
3817
|
+
function vértice(): void;
|
|
3179
3818
|
|
|
3180
|
-
|
|
3819
|
+
/** 🖌
|
|
3181
3820
|
* Especifica un vértice Bezier en una forma.
|
|
3182
3821
|
* @param {number} cp1x coordenada-x del primer punto de control
|
|
3183
3822
|
* @param {number} cp1y coordenada-y del primer punto de control
|
|
@@ -3186,18 +3825,18 @@ declare global {
|
|
|
3186
3825
|
* @param {number} x coordenada-x del punto de anclaje
|
|
3187
3826
|
* @param {number} y coordenada-y del punto de anclaje
|
|
3188
3827
|
*/
|
|
3189
|
-
|
|
3828
|
+
function vérticeBezier(): void;
|
|
3190
3829
|
|
|
3191
|
-
|
|
3830
|
+
/** 🖌
|
|
3192
3831
|
* Especifica un vértice Bezier cuadrático en una forma.
|
|
3193
3832
|
* @param {number} cp1x coordenada-x del punto de control
|
|
3194
3833
|
* @param {number} cp1y coordenada-y del punto de control
|
|
3195
3834
|
* @param {number} x coordenada-x del punto de anclaje
|
|
3196
3835
|
* @param {number} y coordenada-y del punto de anclaje
|
|
3197
3836
|
*/
|
|
3198
|
-
|
|
3837
|
+
function vérticeCuadrático(): void;
|
|
3199
3838
|
|
|
3200
|
-
|
|
3839
|
+
/** 🖌
|
|
3201
3840
|
* Dibuja una curva Bezier.
|
|
3202
3841
|
* @param {number} x1 coordenada-x del primer punto de anclaje
|
|
3203
3842
|
* @param {number} y1 coordenada-y del primer punto de anclaje
|
|
@@ -3208,9 +3847,9 @@ declare global {
|
|
|
3208
3847
|
* @param {number} x4 coordenada-x del segundo punto de anclaje
|
|
3209
3848
|
* @param {number} y4 coordenada-y del segundo punto de anclaje
|
|
3210
3849
|
*/
|
|
3211
|
-
|
|
3850
|
+
function bezier(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number): void;
|
|
3212
3851
|
|
|
3213
|
-
|
|
3852
|
+
/** 🖌
|
|
3214
3853
|
* Dibuja un triángulo.
|
|
3215
3854
|
* @param {number} x1 coordenada-x del primer vértice
|
|
3216
3855
|
* @param {number} y1 coordenada-y del primer vértice
|
|
@@ -3219,9 +3858,9 @@ declare global {
|
|
|
3219
3858
|
* @param {number} x3 coordenada-x del tercer vértice
|
|
3220
3859
|
* @param {number} y3 coordenada-y del tercer vértice
|
|
3221
3860
|
*/
|
|
3222
|
-
|
|
3861
|
+
function triángulo(): void;
|
|
3223
3862
|
|
|
3224
|
-
|
|
3863
|
+
/** 🖌
|
|
3225
3864
|
* Dibuja un cuadrilátero.
|
|
3226
3865
|
* @param {number} x1 coordenada-x del primer vértice
|
|
3227
3866
|
* @param {number} y1 coordenada-y del primer vértice
|
|
@@ -3232,16 +3871,16 @@ declare global {
|
|
|
3232
3871
|
* @param {number} x4 coordenada-x del cuarto vértice
|
|
3233
3872
|
* @param {number} y4 coordenada-y del cuarto vértice
|
|
3234
3873
|
*/
|
|
3235
|
-
|
|
3874
|
+
function quad(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number): void;
|
|
3236
3875
|
|
|
3237
|
-
|
|
3876
|
+
// ⚡ shaders
|
|
3238
3877
|
|
|
3239
|
-
|
|
3878
|
+
/**
|
|
3240
3879
|
* ¡Shaders personalizados escritos en WGSL (WebGPU Shading Language) pueden ser
|
|
3241
3880
|
* usados para crear efectos visuales avanzados en q5!
|
|
3242
3881
|
*/
|
|
3243
3882
|
|
|
3244
|
-
|
|
3883
|
+
/** ⚡
|
|
3245
3884
|
* Crea un shader que q5 puede usar para dibujar formas.
|
|
3246
3885
|
*
|
|
3247
3886
|
* Afecta a las siguientes funciones:
|
|
@@ -3295,9 +3934,9 @@ declare global {
|
|
|
3295
3934
|
* triángulo(-50, -50, 0, 50, 50, -50);
|
|
3296
3935
|
* };
|
|
3297
3936
|
*/
|
|
3298
|
-
|
|
3937
|
+
function crearShader(codigo: string): GPUShaderModule;
|
|
3299
3938
|
|
|
3300
|
-
|
|
3939
|
+
/** ⚡
|
|
3301
3940
|
* Un plano es un rectángulo centrado sin trazo.
|
|
3302
3941
|
* @param {number} x centro x
|
|
3303
3942
|
* @param {number} y centro y
|
|
@@ -3307,15 +3946,15 @@ declare global {
|
|
|
3307
3946
|
* await crearLienzo(200);
|
|
3308
3947
|
* plano(0, 0, 100);
|
|
3309
3948
|
*/
|
|
3310
|
-
|
|
3949
|
+
function plano(x: number, y: number, w: number, h?: number): void;
|
|
3311
3950
|
|
|
3312
|
-
|
|
3951
|
+
/** ⚡
|
|
3313
3952
|
* Aplica un shader.
|
|
3314
3953
|
* @param {GPUShaderModule} moduloShader un programa shader
|
|
3315
3954
|
*/
|
|
3316
|
-
|
|
3955
|
+
function shader(moduloShader: GPUShaderModule): void;
|
|
3317
3956
|
|
|
3318
|
-
|
|
3957
|
+
/** ⚡
|
|
3319
3958
|
* Hace que q5 use el shader de formas por defecto.
|
|
3320
3959
|
* @example
|
|
3321
3960
|
* await crearLienzo(200);
|
|
@@ -3335,34 +3974,34 @@ declare global {
|
|
|
3335
3974
|
* triángulo(-50, -50, 0, 50, 50, -50);
|
|
3336
3975
|
* };
|
|
3337
3976
|
*/
|
|
3338
|
-
|
|
3977
|
+
function reiniciarShader(): void;
|
|
3339
3978
|
|
|
3340
|
-
|
|
3979
|
+
/** ⚡
|
|
3341
3980
|
* Hace que q5 use el shader de fotograma por defecto.
|
|
3342
3981
|
*/
|
|
3343
|
-
|
|
3982
|
+
function reiniciarShaderFotograma(): void;
|
|
3344
3983
|
|
|
3345
|
-
|
|
3984
|
+
/** ⚡
|
|
3346
3985
|
* Hace que q5 use el shader de imagen por defecto.
|
|
3347
3986
|
*/
|
|
3348
|
-
|
|
3987
|
+
function reiniciarShaderImagen(): void;
|
|
3349
3988
|
|
|
3350
|
-
|
|
3989
|
+
/** ⚡
|
|
3351
3990
|
* Hace que q5 use el shader de video por defecto.
|
|
3352
3991
|
*/
|
|
3353
|
-
|
|
3992
|
+
function reiniciarShaderVideo(): void;
|
|
3354
3993
|
|
|
3355
|
-
|
|
3994
|
+
/** ⚡
|
|
3356
3995
|
* Hace que q5 use el shader de texto por defecto.
|
|
3357
3996
|
*/
|
|
3358
|
-
|
|
3997
|
+
function reiniciarShaderTexto(): void;
|
|
3359
3998
|
|
|
3360
|
-
|
|
3999
|
+
/** ⚡
|
|
3361
4000
|
* Hace que q5 use todos los shaders por defecto.
|
|
3362
4001
|
*/
|
|
3363
|
-
|
|
4002
|
+
function reiniciarShaders(): void;
|
|
3364
4003
|
|
|
3365
|
-
|
|
4004
|
+
/** ⚡
|
|
3366
4005
|
* Crea un shader que q5 puede usar para dibujar fotogramas.
|
|
3367
4006
|
*
|
|
3368
4007
|
* `crearLienzo` debe ejecutarse antes de usar esta función.
|
|
@@ -3388,9 +4027,9 @@ declare global {
|
|
|
3388
4027
|
* ratónPresionado ? reiniciarShaders() : shader(boxy);
|
|
3389
4028
|
* };
|
|
3390
4029
|
*/
|
|
3391
|
-
|
|
4030
|
+
function crearShaderFotograma(codigo: string): GPUShaderModule;
|
|
3392
4031
|
|
|
3393
|
-
|
|
4032
|
+
/** ⚡
|
|
3394
4033
|
* Crea un shader que q5 puede usar para dibujar imágenes.
|
|
3395
4034
|
*
|
|
3396
4035
|
* Usa esta función para personalizar una copia del
|
|
@@ -3417,9 +4056,9 @@ declare global {
|
|
|
3417
4056
|
* imagen(logo, 0, 0, 180, 180);
|
|
3418
4057
|
* };
|
|
3419
4058
|
*/
|
|
3420
|
-
|
|
4059
|
+
function crearShaderImagen(codigo: string): GPUShaderModule;
|
|
3421
4060
|
|
|
3422
|
-
|
|
4061
|
+
/** ⚡
|
|
3423
4062
|
* Crea un shader que q5 puede usar para dibujar fotogramas de video.
|
|
3424
4063
|
*
|
|
3425
4064
|
* Usa esta función para personalizar una copia del
|
|
@@ -3462,9 +4101,9 @@ declare global {
|
|
|
3462
4101
|
* imagen(vid, -100, 150, 200, 150);
|
|
3463
4102
|
* };
|
|
3464
4103
|
*/
|
|
3465
|
-
|
|
4104
|
+
function crearShaderVideo(codigo: string): GPUShaderModule;
|
|
3466
4105
|
|
|
3467
|
-
|
|
4106
|
+
/** ⚡
|
|
3468
4107
|
* Crea un shader que q5 puede usar para dibujar texto.
|
|
3469
4108
|
*
|
|
3470
4109
|
* Usa esta función para personalizar una copia del
|
|
@@ -3506,54 +4145,173 @@ declare global {
|
|
|
3506
4145
|
* texto('Hello, World!', 0, 0);
|
|
3507
4146
|
* };
|
|
3508
4147
|
*/
|
|
3509
|
-
|
|
4148
|
+
function crearShaderTexto(codigo: string): GPUShaderModule;
|
|
3510
4149
|
|
|
3511
|
-
|
|
4150
|
+
// ⚙ advanced
|
|
3512
4151
|
|
|
3513
|
-
|
|
4152
|
+
/** ⚙
|
|
4153
|
+
* Alias para `Q5`.
|
|
4154
|
+
*/
|
|
4155
|
+
const q5: typeof Q5;
|
|
4156
|
+
|
|
4157
|
+
class Q5 {
|
|
3514
4158
|
|
|
3515
|
-
|
|
4159
|
+
/** ⚙
|
|
3516
4160
|
* Funcion constructora. Crea una instancia de Q5.
|
|
3517
4161
|
* @param {string | Function} [ambito]
|
|
3518
4162
|
* @param {HTMLElement} [contenedor] elemento HTML dentro del cual se colocará el lienzo
|
|
3519
4163
|
*/
|
|
3520
|
-
|
|
3521
|
-
static deshabilitarErroresAmigables: boolean;
|
|
4164
|
+
constructor(scope?: string | Function, parent?: HTMLElement);
|
|
3522
4165
|
|
|
3523
|
-
|
|
4166
|
+
/** ⚙
|
|
4167
|
+
* Desactiva los mensajes de error amigables de q5.
|
|
4168
|
+
*/
|
|
4169
|
+
disableFriendlyErrors(): void;
|
|
3524
4170
|
|
|
3525
|
-
|
|
4171
|
+
/** ⚙
|
|
4172
|
+
* Establecer en verdadero para mantener el bucle de dibujo después de un error.
|
|
4173
|
+
*/
|
|
4174
|
+
errorTolerant(): void;
|
|
3526
4175
|
|
|
3527
|
-
|
|
4176
|
+
/** ⚙
|
|
4177
|
+
* Verdadero si el dispositivo soporta HDR (el espacio de color display-p3).
|
|
4178
|
+
*/
|
|
4179
|
+
supportsHDR(): void;
|
|
3528
4180
|
|
|
3529
|
-
|
|
4181
|
+
/** ⚙
|
|
4182
|
+
* Establece los atributos de contexto de lienzo predeterminados utilizados para
|
|
4183
|
+
* lienzos recién creados y gráficos internos. Estas opciones son sobrescritas por
|
|
4184
|
+
* cualquier opción por lienzo que pases a `crearLienzo`.
|
|
4185
|
+
*/
|
|
4186
|
+
canvasOptions(): void;
|
|
3530
4187
|
|
|
3531
|
-
|
|
4188
|
+
/** ⚙
|
|
4189
|
+
* Un límite de asignación de memoria WebGPU.
|
|
4190
|
+
*
|
|
4191
|
+
* El número máximo de matrices de transformación
|
|
4192
|
+
* que se pueden usar en una sola llamada de dibujo.
|
|
4193
|
+
*/
|
|
4194
|
+
MAX_TRANSFORMS(): void;
|
|
3532
4195
|
|
|
3533
|
-
|
|
4196
|
+
/** ⚙
|
|
4197
|
+
* Un límite de asignación de memoria WebGPU.
|
|
4198
|
+
*
|
|
4199
|
+
* El número máximo de rectángulos
|
|
4200
|
+
* (llamadas a `rect`, `cuadrado`, `cápsula`)
|
|
4201
|
+
* que se pueden dibujar en una sola llamada de dibujo.
|
|
4202
|
+
*/
|
|
4203
|
+
static MAX_RECTS: number;
|
|
3534
4204
|
|
|
3535
|
-
|
|
4205
|
+
/** ⚙
|
|
4206
|
+
* Un límite de asignación de memoria WebGPU.
|
|
4207
|
+
*
|
|
4208
|
+
* El número máximo de elipses
|
|
4209
|
+
* (llamadas a `elipse`, `círculo`, y `arco`)
|
|
4210
|
+
* que se pueden dibujar en una sola llamada de dibujo.
|
|
4211
|
+
*/
|
|
4212
|
+
MAX_ELLIPSES(): void;
|
|
3536
4213
|
|
|
3537
|
-
|
|
4214
|
+
/** ⚙
|
|
4215
|
+
* Un límite de asignación de memoria WebGPU.
|
|
4216
|
+
*
|
|
4217
|
+
* El número máximo de caracteres de texto
|
|
4218
|
+
* que se pueden dibujar en una sola llamada de dibujo.
|
|
4219
|
+
*/
|
|
4220
|
+
MAX_CHARS(): void;
|
|
3538
4221
|
|
|
3539
|
-
|
|
4222
|
+
/** ⚙
|
|
4223
|
+
* Un límite de asignación de memoria WebGPU.
|
|
4224
|
+
*
|
|
4225
|
+
* El número máximo de llamadas separadas a `texto`
|
|
4226
|
+
* que se pueden dibujar en una sola llamada de dibujo.
|
|
4227
|
+
*/
|
|
4228
|
+
MAX_TEXTS(): void;
|
|
3540
4229
|
|
|
3541
|
-
|
|
4230
|
+
/** ⚙
|
|
4231
|
+
* Crea una nueva instancia de Q5 que usa el [renderizador WebGPU de q5](https://github.com/q5js/q5.js/wiki/q5-WebGPU-renderer).
|
|
4232
|
+
* @example
|
|
4233
|
+
* let q = await Q5.WebGPU('namespace');
|
|
4234
|
+
* q.crearLienzo(200, 100);
|
|
4235
|
+
*
|
|
4236
|
+
* q.dibujar = () => {
|
|
4237
|
+
* q.fondo(0.8);
|
|
4238
|
+
* q.círculo(q.ratónX, 0, 80);
|
|
4239
|
+
* };
|
|
4240
|
+
*/
|
|
4241
|
+
static WebGPU(): Q5;
|
|
4242
|
+
|
|
4243
|
+
/** ⚙
|
|
4244
|
+
* Los addons pueden aumentar q5 con nueva funcionalidad agregando hooks,
|
|
4245
|
+
* funciones que se ejecutan en fases específicas del ciclo de vida de q5.
|
|
4246
|
+
*
|
|
4247
|
+
* Dentro de la función, `this` se refiere a la instancia de Q5.
|
|
4248
|
+
* @param {string} lifecycle init, presetup, postsetup, predraw, postdraw, o remove
|
|
4249
|
+
* @param {Function} fn La función que se ejecutará en la fase del ciclo de vida especificada.
|
|
4250
|
+
*/
|
|
4251
|
+
addHook(): void;
|
|
4252
|
+
|
|
4253
|
+
/** ⚙
|
|
4254
|
+
* Forma compatible con p5.js v2 de registrar un addon con q5.
|
|
4255
|
+
* @param {Function} addon Una función que recibe `Q5`, `Q5.prototype`, y un objeto `lifecycles`.
|
|
4256
|
+
*/
|
|
4257
|
+
registerAddon(): void;
|
|
4258
|
+
|
|
4259
|
+
/** ⚙
|
|
4260
|
+
* Un objeto que contiene los módulos de q5, funciones que se ejecutan cuando q5 carga.
|
|
4261
|
+
*
|
|
4262
|
+
* Cada función recibe dos parámetros de entrada:
|
|
4263
|
+
*
|
|
4264
|
+
* - la instancia de q5
|
|
4265
|
+
* - un proxy para editar la instancia de q5 y las propiedades correspondientes del ámbito global
|
|
4266
|
+
*/
|
|
4267
|
+
modules(): void;
|
|
4268
|
+
|
|
4269
|
+
/** ⚙
|
|
4270
|
+
* La función de dibujo de q5 se ejecuta 60 veces por segundo por defecto.
|
|
4271
|
+
*/
|
|
4272
|
+
draw(): void;
|
|
3542
4273
|
|
|
3543
|
-
|
|
4274
|
+
/** ⚙
|
|
4275
|
+
* Se ejecuta después de cada llamada a la función `dibujar` y procesos de addons de q5 post-dibujo, si los hay.
|
|
4276
|
+
*
|
|
4277
|
+
* Útil para agregar efectos de post-procesamiento cuando no es posible
|
|
4278
|
+
* hacerlo al final de la función `dibujar`, como cuando se usan
|
|
4279
|
+
* addons como p5play que dibujan automáticamente al lienzo después de que
|
|
4280
|
+
* la función `dibujar` se ejecuta.
|
|
4281
|
+
*/
|
|
4282
|
+
postProcess(): void;
|
|
4283
|
+
static deshabilitarErroresAmigables: boolean;
|
|
4284
|
+
|
|
4285
|
+
static toleranteErrores: boolean;
|
|
4286
|
+
|
|
4287
|
+
static soportaHDR: boolean;
|
|
4288
|
+
|
|
4289
|
+
static opcionesLienzo: object;
|
|
4290
|
+
|
|
4291
|
+
static MAX_ELIPSES: number;
|
|
4292
|
+
|
|
4293
|
+
static MAX_TRANSFORMACIONES: number;
|
|
3544
4294
|
|
|
3545
|
-
|
|
4295
|
+
static MAX_CARACTERES: number;
|
|
3546
4296
|
|
|
3547
|
-
|
|
4297
|
+
static MAX_TEXTOS: number;
|
|
3548
4298
|
|
|
3549
|
-
|
|
4299
|
+
static agregarHook(cicloVida: string, fn: Function): void;
|
|
3550
4300
|
|
|
3551
|
-
|
|
4301
|
+
static registrarAddon(addon: Function): void;
|
|
3552
4302
|
|
|
3553
|
-
|
|
4303
|
+
static modulos: object;
|
|
3554
4304
|
|
|
3555
|
-
|
|
3556
|
-
|
|
4305
|
+
dibujar(): void;
|
|
4306
|
+
|
|
4307
|
+
postProcesar(): void;
|
|
4308
|
+
|
|
4309
|
+
actualizar(): void; //-
|
|
4310
|
+
|
|
4311
|
+
dibujarFotograma(): void; //-
|
|
4312
|
+
|
|
4313
|
+
static Imagen: {
|
|
4314
|
+
new (w: number, h: number, opt?: any): Q5.Imagen;
|
|
3557
4315
|
};
|
|
3558
4316
|
|
|
3559
4317
|
}
|
|
@@ -3565,8 +4323,6 @@ declare global {
|
|
|
3565
4323
|
}
|
|
3566
4324
|
}
|
|
3567
4325
|
|
|
3568
|
-
const q5: typeof Q5;
|
|
3569
|
-
|
|
3570
4326
|
}
|
|
3571
4327
|
|
|
3572
4328
|
export {};
|