Skip to content

Instantly share code, notes, and snippets.

View rpggio's full-sized avatar

Ryan P Smith rpggio

View GitHub Profile
Verifying my Blockstack ID is secured with the address 1EbxrkJezeMR8LqeKVVBGoSfzA6MbrwfRh https://explorer.blockstack.org/address/1EbxrkJezeMR8LqeKVVBGoSfzA6MbrwfRh
@rpggio
rpggio / PaperJSViewZoom.ts
Last active December 25, 2019 11:23
An implementation of pan and zoom in Paper.js, based on http://matthiasberth.com/articles/stable-zoom-and-pan-in-paperjs/. Requires jquery-mousewheel to capture wheel events.
class ViewZoom {
project: paper.Project;
factor = 1.25;
private _minZoom: number;
private _maxZoom: number;
private mouseNativeStart: paper.Point;
private viewCenterStart: paper.Point;
@rpggio
rpggio / README.md
Last active August 29, 2015 13:58 — forked from mbostock/.block
Hex grid example

Click and drag above to paint red hexagons. A black outline will appear around contiguous clusters of red hexagons. This outline is constructed using topojson.mesh, part of the TopoJSON client API. A filter is specified so that the mesh only contains boundaries that separate filled hexagons from empty hexagons.

The hexagon grid itself is represented as TopoJSON, but is constructed on-the-fly in the browser. Since TopoJSON requires quantized coordinates, the hexagon grid is represented as integers, with each hexagon of dimensions 3×2. Then a custom projection is used to transform these irregular integer hexagons to normal hexagons of the desired size.