String art 🧵 Mona Lisa
180 nails / max 4 windings per nail
Log in to post a comment.
// Forked from "String art 🧵" by markknol
// https://turtletoy.net/turtle/dd4c8beb92
const turtle = new Turtle();
const string = [4, 106, 174, 91, 160, 88, 176, 90, 163, 95, 159, 92, 172, 107, 170, 100, 158, 97, 175, 105, 5, 79, 3, 95, 176, 85, 9, 83, 177, 87, 164, 93, 171, 99, 167, 108, 42, 114, 48, 122, 53, 119, 49, 124, 52, 113, 54, 118, 50, 123, 47, 125, 45, 120, 48, 148, 31, 150, 29, 147, 32, 153, 83, 1, 75, 4, 82, 10, 79, 155, 98, 173, 89, 175, 96, 162, 108, 169, 102, 157, 35, 146, 46, 124, 58, 117, 51, 114, 56, 118, 41, 121, 51, 107, 173, 84, 0, 89, 164, 38, 121, 47, 115, 41, 126, 44, 111, 54, 116, 59, 110, 166, 86, 178, 76, 26, 148, 27, 143, 43, 112, 49, 147, 34, 158, 93, 176, 104, 156, 96, 169, 101, 160, 90, 172, 86, 8, 81, 29, 75, 0, 94, 157, 37, 146, 39, 119, 46, 116, 40, 127, 51, 111, 161, 87, 32, 149, 25, 78, 6, 81, 2, 73, 30, 151, 24, 139, 61, 109, 168, 98, 172, 105, 155, 82, 28, 152, 84, 177, 89, 159, 91, 170, 95, 35, 86, 33, 148, 20, 65, 123, 55, 115, 50, 125, 54, 133, 37, 165, 100, 163, 39, 117, 42, 113, 57, 137, 22, 64, 124, 69, 1, 93, 157, 101, 162, 40, 138, 21, 67, 117, 45, 129, 39, 169, 87, 160, 112, 0, 82, 7, 103, 168, 97, 174, 90, 158, 92, 34, 80, 30, 149, 19, 68, 2, 114, 155, 108, 48, 110, 45, 104, 52, 120, 44, 142, 26, 144, 17, 151, 76, 13, 151, 80, 5, 117, 55, 132, 19, 93, 32, 88, 162, 110, 41, 105, 171, 106, 62, 126, 68, 110, 178, 96, 2, 83, 154, 91, 37, 167, 100, 42, 173, 85, 36, 134, 53, 118, 48, 113, 157, 98, 166, 109, 46, 103, 0, 70, 123, 59, 16, 153, 75, 27, 83, 174, 105, 161, 89, 35, 160, 94, 18, 143, 10, 51, 124, 57, 116, 44, 112, 60, 120, 76, 152, 33, 82, 158, 86, 171, 108, 175, 99, 164, 25, 147, 30, 74, 1, 100, 39, 109, 50, 121, 43, 98, 47, 119, 6, 107, 174, 41, 122, 66, 23, 140, 11, 149, 71, 116, 4, 125, 56, 136, 23, 63, 127, 7, 145, 28, 92, 165, 38, 101, 171, 43, 113, 45, 111, 177, 106, 40, 99, 46, 95, 156, 78, 119, 55, 14, 152, 77, 121, 8, 134, 20, 92, 163, 94, 36, 163, 107, 49, 122, 3, 128, 84, 156, 87, 153, 85, 159, 102, 37, 84, 131, 90, 155, 40, 114, 47, 112, 53, 115, 42, 104, 172, 71, 150, 67, 26, 150, 72, 31, 151, 70, 149, 31, 96, 38, 166, 99, 168, 50, 111, 178, 94, 135, 5, 118, 38, 88, 159, 97, 36, 91, 161, 102, 170, 106, 173, 43, 102, 49, 115, 44, 97, 165, 80, 154, 81, 123, 2, 129, 88, 154, 77, 3, 141, 9, 122, 52, 12, 139, 15, 145, 8, 128, 85, 126, 76, 153, 79, 120, 53, 169, 104, 36, 101, 168, 68, 150, 73, 152, 78, 34, 156, 60, 176, 109, 177, 130, 4, 126, 79, 154, 33, 103, 170, 52, 9, 147, 21, 64, 148, 10, 133, 81, 125, 57, 17, 103, 35, 161, 74, 127, 5, 143, 6, 144, 7, 140, 3, 136, 178, 137, 1, 134, 175, 61,];
const radius = 75; // min=25, max=200, step=5
const totalNails = string.reduce((v,t)=>Math.max(v,t), 0);
function walk(i, t) {
const angle = (string[i] / totalNails) * Math.PI*2 + Math.PI/2;
const pos = [Math.sin(-angle) * radius, Math.cos(angle) * radius];
if (i === 0) turtle.jump(pos);
else turtle.goto(pos);
return i < string.length * t;
}