Skip to content

Instantly share code, notes, and snippets.

@jupdike
jupdike / Path.tsx
Last active May 12, 2021
Hacks to react-native-svg ./src/elements/Path.tsx to fix a bug where <path> elements are not ignoring passed-in x and y attributes, and translating paths off canvas, and thus not rendering some paths. Using withoutXY instead of extract fixes this. Hack to extractFill.ts to allow fill:none to work as expected. Hacks to RNSVGRenderable.m init meth…
View Path.tsx
import React from 'react';
import { withoutXY } from '../lib/extract/extractProps';
import Shape from './Shape';
import { RNSVGPath } from './NativeComponents';
export default class Path extends Shape<{
d?: string;
}> {
static displayName = 'Path';
@jupdike
jupdike / RCTFont.mm
Created Mar 9, 2021
Hacks to React Native iOS font selecting code (updateFont method) to allow picking width, optical size for complicated font families
View RCTFont.mm
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* 2021-03-08 hacks by Jared Updike, to updateFont method.
* Allow picking width, optical size for complicated font families. For example I have a design using Merriweather
* with these font files:
Merriweather-12ptBold.ttf
View ff-convert.sh
#!/bin/bash
# ONLY CONVERTS TO .SVG FONTS
# REAME: call from ffconvert.sh with (cd /path/with/font/files && ffconvert.sh *.ttf)
# or *.otf
# if a problem occurs, just rename fonts without spaces!
echo "" | /Applications/FontForge.app/Contents/MacOS/FontForge -script /path/to/font-to-svg.txt $@ &>/dev/null
View font-to-svg.txt
#!/Applications/FontForge.app/Contents/MacOS/FontForge
# ONLY CONVERTS TO .SVG FONTS
# REAME: call from ffconvert.sh with (cd /path/with/font/files && ffconvert.sh *.ttf)
# or *.otf
# if a problem occurs, just rename fonts without spaces!
#Open($1)
#Generate($1:r + ".svg")
@jupdike
jupdike / IntersectTwoCircles.js
Last active Mar 6, 2021
Find the intersections (two points) of two circles, if they intersect at all
View IntersectTwoCircles.js
// based on the math here:
// http://math.stackexchange.com/a/1367732
// x1,y1 is the center of the first circle, with radius r1
// x2,y2 is the center of the second ricle, with radius r2
function intersectTwoCircles(x1,y1,r1, x2,y2,r2) {
var centerdx = x1 - x2;
var centerdy = y1 - y2;
var R = Math.sqrt(centerdx * centerdx + centerdy * centerdy);
if (!(Math.abs(r1 - r2) <= R && R <= r1 + r2)) { // no intersection