{{ 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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
 //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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
 //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)