File: floatingdisk.asy

package info (click to toggle)
asymptote 2.85%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 43,264 kB
  • sloc: cpp: 210,491; ansic: 98,376; python: 14,568; javascript: 6,629; sh: 4,301; perl: 1,566; lisp: 1,505; makefile: 764; yacc: 554; lex: 446; xml: 182; objc: 177
file content (28 lines) | stat: -rw-r--r-- 558 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import trembling;
if(settings.outformat == "")
  settings.outformat="pdf";

size(6cm,0);

real R=1/5;
real h=0.5;
real d=1/12;
real l=.7;

pair pA=(-l,0);
pair pB=(l,0);

tremble tr=tremble(angle=10,frequency=0.1,random=50,fuzz=1);
path waterline=tr.deform(pA..pB);

path disk=shift(0,-d)*scale(R)*unitcircle;
path water=waterline--(l,-h)--(-l,-h)--(-l,0)--cycle;
path container=(l,1/7)--(l,-h)--(-l,-h)--(-l,1/7);

filldraw(disk,red,linewidth(.3));
fill(water,mediumgrey+opacity(0.5));
draw(waterline);

draw(container,linewidth(1.5));

shipout(bbox(2mm));