diff options
author | Dante Catalfamo | 2020-07-03 15:32:37 -0400 |
---|---|---|
committer | Dante Catalfamo | 2020-07-03 15:32:37 -0400 |
commit | 3feb091fc16b8f823b3c64964afe8c0c790b4ae1 (patch) | |
tree | 8c6bfdfc545383965865bd91bb1bbf245fddedf1 /public | |
parent | 71dad28c5f0072828358594272566f797380510e (diff) | |
download | homepage-3feb091fc16b8f823b3c64964afe8c0c790b4ae1.tar.gz homepage-3feb091fc16b8f823b3c64964afe8c0c790b4ae1.tar.bz2 homepage-3feb091fc16b8f823b3c64964afe8c0c790b4ae1.zip |
Add deploy script
Diffstat (limited to 'public')
-rw-r--r-- | public/braille.js | 67 | ||||
-rw-r--r-- | public/index.html | 70 | ||||
-rw-r--r-- | public/lambda.js | 70 |
3 files changed, 207 insertions, 0 deletions
diff --git a/public/braille.js b/public/braille.js new file mode 100644 index 0000000..fe81c6e --- /dev/null +++ b/public/braille.js @@ -0,0 +1,67 @@ +"use strict"; + +const OUTHEIGHT = 30; +const OUTWIDTH = 2 * OUTHEIGHT; +const HEIGHT = 3 * OUTHEIGHT; +const WIDTH = 2 * OUTWIDTH; +const BRAILLE = [ + "⠀", "⠁", "⠂", "⠃", "⠄", "⠅", "⠆", "⠇", "⠈", "⠉", "⠊", "⠋", "⠌", "⠍", "⠎", "⠏", + "⠐", "⠑", "⠒", "⠓", "⠔", "⠕", "⠖", "⠗", "⠘", "⠙", "⠚", "⠛", "⠜", "⠝", "⠞", "⠟", + "⠠", "⠡", "⠢", "⠣", "⠤", "⠥", "⠦", "⠧", "⠨", "⠩", "⠪", "⠫", "⠬", "⠭", "⠮", "⠯", + "⠰", "⠱", "⠲", "⠳", "⠴", "⠵", "⠶", "⠷", "⠸", "⠹", "⠺", "⠻", "⠼", "⠽", "⠾", "⠿", +]; + +let board = new Array(HEIGHT); +for (let i = 0; i < HEIGHT; i++) { + board[i] = new Array(WIDTH); +} + +function render(board) { + const out = new Array(OUTHEIGHT); + for (let i = 0; i < OUTHEIGHT; i++) { + out[i] = new Array(OUTWIDTH); + } + for (let y = 0; y < HEIGHT; y += 3) { + for (let x = 0; x < WIDTH; x += 2) { + let outx = x/2; + let outy = y/3; + let tl = board[y][x] ? 1 : 0; + let ml = board[y+1][x] ? 1 : 0; + let bl = board[y+2][x] ? 1 : 0; + let tr = board[y][x+1] ? 1 : 0; + let mr = board[y+1][x+1] ? 1 : 0; + let br = board[y+2][x+1] ? 1 : 0; + let idx = tl*1 + ml*2 + bl*4 + tr*8 + mr*16 + br*32; + let char = BRAILLE[idx]; + out[outy][outx] = char; + } + } + return out.reduce((a, r) => a + r.reduce((a2, c) => a2 + c) + "\n", ""); +} + +function renderFunction(board, fun, frame) { + for (let y = 0; y < HEIGHT; y++) { + for (let x = 0; x < WIDTH; x++) { + board[y][x] = fun(x, y, frame) ? true : null; + } + } + return render(board); +} + +function fun(x, y, frame) { + const l = HEIGHT / 3; + const m1 = Math.abs(y+frame) % l; + const m2 = Math.abs(y-frame) % l; + return x == m1 || + x == m2 || + x/2 == m1 + l/2 || + x/2 == m2 + l/2 || + x == m1 + 3*l || + x == m2 + 3*l; +} + +const br = document.getElementById("braille"); +let frame = HEIGHT; +const interval = setInterval(() => { + br.innerHTML = renderFunction(board, fun, frame++); +}, 50); diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..ef3909f --- /dev/null +++ b/public/index.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>lambda.cx home</title> + <style> + body { + background: black; + color: white; + font-family: monospace; + } + #braille { + line-height: .92; + border: 1px solid white; + } + .bigguy { + display: flex; + } + .lambda { + font-family: Andale Mono, monospace; + font-size: 12px; + display: inline-block; + } + .linkbox { + display: flex; + align-items: center; + justify-content: center; + flex: 1; + } + .links { + font-size: 16px; + display: inline-block; + position: absolute; + background: black; + padding: 3px; + border: 1px solid white; + } + .links > span { + color: white; + } + .links a { + color: lightgrey; + } + .links a:visited { + color: grey; + } + @media only screen and (max-width: 440px) { + .bigguy { + display: block; + } + } + </style> + </head> + <body> + <div class="bigguy"> + <pre class="lambda"></pre> + <div class="linkbox"> + <pre id="braille"></pre> + <div class="links"> + <span>==> </span><a href="https://blog.lambda.cx">blog</a><br/> + <span>==> </span><a href="https://github.com/dantecatalfamo">github</a> + </div> + </div> + </div> + <script src="lambda.js"></script> + <script src="braille.js"></script> + </body> +</html> diff --git a/public/lambda.js b/public/lambda.js new file mode 100644 index 0000000..85037c3 --- /dev/null +++ b/public/lambda.js @@ -0,0 +1,70 @@ +function coss(height, width, theta) { + let amplitude = height/2; + let period = width; + let dx = Math.PI/width; + let yVal = []; + let x = theta; + + for(let i=0;i<width;i++){ + yVal.push((Math.cos(x)*amplitude)+(height/2)); + x += dx; + } + return yVal; +} + +function lamby(height, width, thick) { + let out = ""; + let yvals = coss(height, width, Math.PI); + let halfWidth = width/2; + + for(let y=0;y<height;y++){ + for(let x=0;x<width;x++){ + let posy = yvals[x]; + let negy = height-posy; + if (Math.abs(posy-y) < thick) { + out += "<span style=\"color: hsl("+ (Math.abs(posy-y)/thick*260) +",100%, 50%)\">λ</span>"; + } else if ((x < halfWidth) && (Math.abs(negy-y) < thick)) { + out += "<span style=\"color: hsl("+ (Math.abs(negy-y)/thick*260) +",100%, 50%)\">λ</span>"; + } else { + out += " "; + } + } + out += "\n"; + } + return out; +} + +function putlam(el, height, width, min, max, period) { + let amp = max-min; + const f = function() { + let percent = (Math.sin(((new Date).getTime()/period)) + 1) / 2; + let thick = (amp * percent) + min; + el.innerHTML = lamby(height, width, thick); + }; + window.setInterval(f, 100); +} + +let lamEl = document.querySelector('.lambda'); +putlam(lamEl, 45, 45, 0.3, 4.5, 450); + + +` +00 + 0 + 0 + 0 0 + 0 0 +0 00 + +0 + 0 +0 0 + +_ + \ + \ + /\ + / \ + / \ +/ \_ +`; |