
Show HN: A resource for drawing complex primitives in JavaScript - MJSplot_author
http://xqt2.com/p/MoreCanvasContext.html
======
Lerc
Do you mind if I add these to my own library?
[https://github.com/Lerc/whio](https://github.com/Lerc/whio) (MIT Licence)

It's a library I use when I teach kids JavaScript. It provides simple global
functions to let them get started before they have to deal with ideas such as
canvas context objects.

A Wiki page showing the functions they get to use is at
[http://fingswotidun.com/code/index.php/API](http://fingswotidun.com/code/index.php/API)

The functions you show here are exactly the sort of thing that would be useful
for beginners.

~~~
carterehsmith
Nice, is that a LOGO programming language?

------
tantalor
Is the author aware of [https://developer.mozilla.org/en-
US/docs/Web/API/CanvasRende...](https://developer.mozilla.org/en-
US/docs/Web/API/CanvasRenderingContext2D#Transformations)?

Use rotate(), translate(), and scale() instead of doing your own math.

~~~
MJSplot_author
Yes, but this is as simple. It's not really my maths, it's quite standard
stuff.

I'm more excited about Path2D[0] becoming adopted by more browsers.

[0] [https://developer.mozilla.org/en-
US/docs/Web/API/Path2D](https://developer.mozilla.org/en-
US/docs/Web/API/Path2D)

------
runemadsen
Here's a resource I made for Processing. Very similar.
[http://printingcode.runemadsen.com/lecture-
form-2/](http://printingcode.runemadsen.com/lecture-form-2/)

------
artursapek
Nice work. Very interesting. Canvas is such a fun API.

------
tlb
Is it reliable to add methods to a built-in object like
CanvasRenderingContext2D? I avoid it, but perhaps just out of superstition.

~~~
makepanic
You're right, extending the prototype of builtin objects is almost always a
bad idea.

See String.prototype.contains → String.prototype.includes because mootools
extended the String prototype[1]

[1] - [https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#String.prototype.contains)

------
aikah
nice we need more lessons like this.

