Skip to content

Instantly share code, notes, and snippets.

View IkarosKappler's full-sized avatar
💭
I want to build a submarine one day.

Ikaros Kappler IkarosKappler

💭
I want to build a submarine one day.
View GitHub Profile
@IkarosKappler
IkarosKappler / ColorsetMalachite.ts
Created October 28, 2020 13:53
A set of green shades making up some malachite (the mineral) gradient
// Import your preferred Color class
import { Color } from "./datastructures/Color";
// A mix of green shades
// Example at https://www.int2byte.de/public/plot-boilerplate/screenshots/screenshots-fullcolor/screenshot-20201027-0-multiple-circle-intersection-malachite.png
export const WebColorsMalachite : Array<Color> = [
Color.makeRGB(0,21,6),
Color.makeRGB(0,30,12),
Color.makeRGB(0,52,28),
Color.makeRGB(0,81,47),
@IkarosKappler
IkarosKappler / svg-test-path-data.js
Last active February 19, 2021 21:12
SVG path test data with absolute and relative commands
// Intend: create a shape with all available SVG path commands.
// Result: two shapes, one with absolute commands only, the second with relative commands only.
// Aim: test my SVG path transform algorithm if it works (scale and translate).
var drawScalingTestPath = function() {
// Define a shape with SVG path data attributes only with _absolute_
// path commands.
var svgDataAbsolute = [
'M', -10, -7.5,
'V', -10,
@IkarosKappler
IkarosKappler / evenlyPolygon.js
Last active December 17, 2021 19:03
Evenly distribute n vertices along a path or polygon.
/**
* The main function.
*
* @param {Polygon} polygon
* @param {number} pointCount - Must not be negative.
*/
var ep = function (polygon, pointCount) {
if (pointCount <= 0) {
throw new Error("pointCount must be larger than zero; is " + pointCount + ".");
}
@IkarosKappler
IkarosKappler / extend-lilgui-colorwithalpha.css
Last active July 8, 2024 19:57
A color-with-alpha extension for lil-gui, adding the missing `alpha` control input.
input[type="range"] {
-webkit-appearance: none;
appearance: none;
background: transparent;
cursor: pointer;
}
/***** Chrome, Safari, Opera, and Edge Chromium *****/
input[type="range"]::-webkit-slider-runnable-track {
height: 0.5rem;