|
198 | 198 | DEV: assert(isNumber(value), "norm: 1st param must be a number");
|
199 | 199 | DEV: assert(isNumber(start), "norm: 2nd param must be a number");
|
200 | 200 | DEV: assert(isNumber(stop), "norm: 3rd param must be a number");
|
| 201 | + DEV: assert(start !== stop, "norm: the 2nd param must be different than the 3rd param"); |
201 | 202 | return instance.map(value, start, stop, 0, 1);
|
202 | 203 | },
|
203 | 204 | /**
|
|
398 | 399 | _ctx.arc(~~x, ~~y, ~~radius, 0, TWO_PI);
|
399 | 400 | instance.fill(color);
|
400 | 401 | },
|
| 402 | + /** |
| 403 | + * Draw a ellipse outline |
| 404 | + * |
| 405 | + * @param {number} x |
| 406 | + * @param {number} y |
| 407 | + * @param {number} radiusX |
| 408 | + * @param {number} radiusY |
| 409 | + * @param {number} [color=0] the color index |
| 410 | + */ |
| 411 | + oval(x, y, radiusX, radiusY, color) { |
| 412 | + DEV: assert(isNumber(x), "oval: 1st param must be a number"); |
| 413 | + DEV: assert(isNumber(y), "oval: 2nd param must be a number"); |
| 414 | + DEV: assert( |
| 415 | + isNumber(radiusX) && radiusX >= 0, |
| 416 | + "oval: 3rd param must be a positive number or zero" |
| 417 | + ); |
| 418 | + DEV: assert( |
| 419 | + isNumber(radiusY) && radiusY >= 0, |
| 420 | + "oval: 4th param must be a positive number or zero" |
| 421 | + ); |
| 422 | + DEV: assert( |
| 423 | + null == color || isNumber(color) && color >= 0, |
| 424 | + "oval: 5th param must be a positive number or zero" |
| 425 | + ); |
| 426 | + _ctx.beginPath(); |
| 427 | + _ctx.ellipse(~~x, ~~y, ~~radiusX, ~~radiusY, 0, 0, TWO_PI); |
| 428 | + instance.stroke(color); |
| 429 | + }, |
| 430 | + /** |
| 431 | + * Draw a color-filled ellipse |
| 432 | + * |
| 433 | + * @param {number} x |
| 434 | + * @param {number} y |
| 435 | + * @param {number} radiusX |
| 436 | + * @param {number} radiusY |
| 437 | + * @param {number} [color=0] the color index |
| 438 | + */ |
| 439 | + ovalfill(x, y, radiusX, radiusY, color) { |
| 440 | + DEV: assert(isNumber(x), "ovalfill: 1st param must be a number"); |
| 441 | + DEV: assert(isNumber(y), "ovalfill: 2nd param must be a number"); |
| 442 | + DEV: assert( |
| 443 | + isNumber(radiusX) && radiusX >= 0, |
| 444 | + "ovalfill: 3rd param must be a positive number or zero" |
| 445 | + ); |
| 446 | + DEV: assert( |
| 447 | + isNumber(radiusY) && radiusY >= 0, |
| 448 | + "ovalfill: 4th param must be a positive number or zero" |
| 449 | + ); |
| 450 | + DEV: assert( |
| 451 | + null == color || isNumber(color) && color >= 0, |
| 452 | + "ovalfill: 5th param must be a positive number or zero" |
| 453 | + ); |
| 454 | + _ctx.beginPath(); |
| 455 | + _ctx.ellipse(~~x, ~~y, ~~radiusX, ~~radiusY, 0, 0, TWO_PI); |
| 456 | + instance.fill(color); |
| 457 | + }, |
401 | 458 | /**
|
402 | 459 | * Draw a line
|
403 | 460 | *
|
|
1219 | 1276 | `Litecanvas' option "width" is required when the option "height" is defined`
|
1220 | 1277 | );
|
1221 | 1278 | const width = settings.width || root.innerWidth, height = settings.height || settings.width || root.innerHeight;
|
1222 |
| - instance.def("W", _canvas.width = width); |
1223 |
| - instance.def("H", _canvas.height = height); |
| 1279 | + instance.def("W", width); |
| 1280 | + instance.def("H", height); |
| 1281 | + _canvas.width = width; |
| 1282 | + _canvas.height = height; |
1224 | 1283 | if (settings.autoscale) {
|
1225 | 1284 | if (!_canvas.style.display) {
|
1226 | 1285 | _canvas.style.display = "block";
|
1227 | 1286 | _canvas.style.margin = "auto";
|
1228 | 1287 | }
|
1229 |
| - _scale = math.min(root.innerWidth / instance.W, root.innerHeight / instance.H); |
| 1288 | + _scale = math.min(root.innerWidth / width, root.innerHeight / height); |
1230 | 1289 | _scale = (settings.pixelart ? ~~_scale : _scale) || 1;
|
1231 |
| - _canvas.style.width = instance.W * _scale + "px"; |
1232 |
| - _canvas.style.height = instance.H * _scale + "px"; |
| 1290 | + _canvas.style.width = width * _scale + "px"; |
| 1291 | + _canvas.style.height = height * _scale + "px"; |
1233 | 1292 | }
|
1234 | 1293 | if (!settings.antialias || settings.pixelart) {
|
1235 | 1294 | _ctx.imageSmoothingEnabled = false;
|
|
0 commit comments