{{ message }}

Instantly share code, notes, and snippets.

# William Malo williammalo

Last active Dec 5, 2016
Find Tangents of Two Circles in glsl, useful for calculating soft shadows https://www.shadertoy.com/view/Mtc3R2
View CircleCircleTangents.glsl
 //visual basics code from http://www.vb-helper.com/howto_net_circle_circle_tangents.html ported to glsl vec4 FindCircleCircleIntersections(vec2 p0, float r0, vec2 p1, float r1){ vec2 dd = p1-p0; float d = length(dd); float a = (r0 * r0 - r1 * r1 + d * d) / (2.0 * d); float h = sqrt(r0 * r0 - a * a);
Last active Dec 18, 2015 — forked from 140bytes/LICENSE.txt

##Object Merger

Recurcively merges two objects.

``````merge(
{foo:"foo"},
{bar:{lol:"lol"}}
);
``````
Last active Oct 8, 2015 — forked from 140bytes/LICENSE.txt
image to 2d array

converts canvas image data to a 2d array of booleans

array=img2array(imagedata,width,height)

array[x][y] //gives true or false

very useful for games where you need pixel perfect collision.

Reading an image every time you check for collision is slow. Using a 2d array makes it much faster, and has a very simple syntax (array[x][y]) .

Last active Oct 7, 2015 — forked from 140bytes/LICENSE.txt
masonry under 140bytes

A minimalist masonry function

``````mason(containerElement,brickElement,brickWidth,brickHeight)
``````

Only works with one size of brick.

The only advantage of using this over using inline-block elements is that you can use css transitions.

Last active Mar 1, 2019 — forked from 140bytes/LICENSE.txt

This function loops through all images on the page, and serves the appropriately sized image file from a list in a data attribute.

example html:

``````<img src="default.png" data-widths="400,600,800,1023" data-srcsuffix="-foo.png">
``````

example javascript:

Last active Oct 6, 2015 — forked from 140bytes/LICENSE.txt
get offset of element

recursively checks every parent of the element to get the ABSOLUTE offset of the element.

call it like this:

``````getOff(element).x
getOff(element).y
``````
Created Jun 25, 2012
Javascript Calendar Maker
View calendar.js
 //function calendar = function(year,month,template,rowStart,rowEnd,cellStart,cellEnd){ var tmpl=function(a,b){return a.replace(/\{\{([^{}]+)}}/g,function(c,d){return typeof b[d]=="function"?b[d]():b[d]})} return tmpl(template,{ monthName:"January,February,March,April,May,June,July,August,September,October,November,December".split(",")[month], year:year, days:function(f,txt,i){
Last active Oct 6, 2015 — forked from 140bytes/LICENSE.txt
set element properties on nodelists

a neat function that allows this:

``````document.getElementsByTagName('i').innerHTML="pie";
``````

and it will change the innerHTML of all tags AUTOMATICALLY!!!!

incredible!

Created Jun 19, 2012
View Description.md

Takes a rss feed and prints html (defined by a template) for every post.

Last active Oct 5, 2015 — forked from 140bytes/LICENSE.txt
blockifyIndents
``````if(3==3)