From 87a428046424f090dd155313ff3097ca35aca5c2 Mon Sep 17 00:00:00 2001 From: bbaudry Date: Sun, 19 Nov 2023 19:34:51 +0100 Subject: [PATCH] {].+><+.[} --- p5-experiments/plottable006.html | 218 +++++++++++++++++++------------ 1 file changed, 135 insertions(+), 83 deletions(-) diff --git a/p5-experiments/plottable006.html b/p5-experiments/plottable006.html index fa12aef2..e262b339 100644 --- a/p5-experiments/plottable006.html +++ b/p5-experiments/plottable006.html @@ -22,8 +22,8 @@ //w=96*297/25.4=1122.5 //h=96*420/25.4=1587.4 var res = 2 - var h = 1587/2 - var w = 1122/2 + var h = 1587 / 2 + var w = 1122 / 2 var leftmargin = 36 var righttmargin = 36 var topmargin = 45 @@ -63,114 +63,166 @@ var field = [] function draw() { - var x1=righttmargin - var x2=w-leftmargin - var y1=topmargin - var y2=h-bottommargin - stroke(0,0,100) + var x1 = righttmargin + var x2 = w - leftmargin + var y1 = topmargin + var y2 = h - bottommargin + stroke(0, 0, 100) moon(x1,y1,x2,y2) + //test(x1, y1, x2, y2) } - - function moon(x1,y1,x2,y2){ - var diam = x2-x1 - var cx = righttmargin+diam/2 - var cy = topmargin+(y2-y1)/2 + function test(x1, y1, x2, y2) { + var diam = x2 - x1 + var cx = righttmargin + diam / 2 + var cy = topmargin + (y2 - y1) / 2 + var angle1 = 135 + var angle2 = 180 + var px1 = cx + (diam / 2) * cos(radians(angle1)) + var py1 = cy + (diam / 2) * sin(radians(angle1)) + var px2 = cx + (diam / 2) * cos(radians(angle2)) + var py2 = cy + (diam / 2) * sin(radians(angle2)) + stroke(0, 100, 100) + line(cx, cy, px1, py1) + stroke(180, 100, 100) + line(cx, cy, px2, py2) + stroke(90, 100, 100) + //arc(cx,cy,diam,diam,radians(angle1),radians(angle2)) + var dist = angle2 - angle1 + var ratio = 0.75 + var off = dist * ratio + var angle3 = angle2 - off + var t = 1 - ratio + var ox = (1 - t) * cx + (t * px2); + var oy = (1 - t) * cy + (t * py2); + var px3 = cx + (diam / 2) * cos(radians(angle3)) + var py3 = cy + (diam / 2) * sin(radians(angle3)) + stroke(45, 100, 100) + arc(cx, cy, diam, diam, radians(angle3), radians(angle2)) + line(ox, oy, px3, py3) + } + function moon(x1, y1, x2, y2) { + var diam = x2 - x1 + var cx = righttmargin + diam / 2 + var cy = topmargin + (y2 - y1) / 2 //ellipse(cx,cy,diam,diam) - var angle_min,angle_max, start_angle - angle_min=95 - angle_max=142 - var tilt = random(60,90) - moonPartOne(cx,cy,diam,angle_min,angle_max,tilt) + var angle_min, angle_max, start_angle + angle_min = 95 + angle_max = 142 + var tilt = random(60, 90) + moonPartOne(cx, cy, diam, angle_min, angle_max, tilt) angle_min1 = 0 - angle_min2 = 90-(angle_max-tilt) + angle_min2 = 90 - (angle_max - tilt) angle_max1 = 142 angle_max2 = 160 - moonPartOne2(cx,cy,diam,angle_min1,angle_min1,angle_max1,angle_max2) - angle_min=275 - angle_max=315 - moonPartTwo(cx,cy,diam,angle_min,angle_max) - angle_min=162 - angle_max=275 - moonPartThree(cx,cy,diam,angle_min,angle_max) - angle_min=295 - angle_max=360 - moonPartFour(cx,cy,diam,angle_min,angle_max) + moonPartOne2(cx, cy, diam, angle_min1, angle_min1, angle_max1, angle_max2) + angle_min = 275 + angle_max = 315 + moonPartTwo(cx, cy, diam, angle_min, angle_max) + angle_min = 162 + angle_max = 275 + moonPartThree(cx, cy, diam, angle_min, angle_max) + angle_min = 295 + angle_max = 360 + moonPartFour(cx, cy, diam, angle_min, angle_max) } - function moonPartOne(cx,cy,diam,angle_min,angle_max,tilt){ - var rad = diam/2 + function moonPartOne(cx, cy, diam, angle_min, angle_max, tilt) { + var rad = diam / 2 var density = 4 var angle = angle_min - while(angle 7){ + function moonPartTwo(cx, cy, diam, angle_min, angle_max) { + var rad = diam / 2 + var angle2 = radians(random(angle_min, angle_max)) + var density = random(7, 15) + while (rad > 7) { var angle1 = radians(160) - var px1 = cx+rad*cos(angle1) - var py1 = cy+rad*sin(angle1) - var px2 = cx+rad*cos(angle2) - var py2 = cy+rad*sin(angle2) - line(px1,py1,px2,py2) - rad-=11 + var px1 = cx + rad * cos(angle1) + var py1 = cy + rad * sin(angle1) + var px2 = cx + rad * cos(angle2) + var py2 = cy + rad * sin(angle2) + line(px1, py1, px2, py2) + rad -= 11 } } - function moonPartThree(cx,cy,diam,angle_min,angle_max){ - var rad = diam/2 - var px1 = cx+rad*cos(radians(angle_min)) - var py1 = cy+rad*sin(radians(angle_min)) - var px2 , py2 ; - for(var angle=angle_min;angledensity;d-=density){ - arc(cx,cy,d,d,radians(angle_min),radians(angle_max)) - } + var density = random(9, 17) + for (var d = diam; d > density; d -= density) { + arc(cx, cy, d, d, radians(angle_min), radians(angle_max)) + } }