#vloz "zakladni.dk"
kulova (vyska) {
B = bod(0, 0, vyska);
r = rovnobezka(x, B);
RR = p(alfa:0, r);
kdyz (pocet(RR) > 1) {
R = RR:1;
RS = primka(R, SN:0);
W = p(o.2, RS.2);
k = kolmice(Ny, s.2, W);
T = p(r,k);
TP = po_ordinale(Ny, Pi, T, h);
kp = kolmice(Pi, s.1, TP);
kk = kruz(Pi, SP, v(R.1, SP.2));
VV = p(kk, kp);
kdyz (typ(VV:0)=="bod") {
V = bod((VV:0)."x", (VV:0)."y", vyska);
V = bod((VV:1)."x", (VV:1)."y", vyska);
popis(V, vse, 0);
videt(V, 1, 0);
vrat V;
}
}
}
hlavni () {
papir(29.7, 21, 1);
okraj(0.75,0.75,0.75,0.75,0.25,1,0);
posunutipss(0,-2);
nadpis("", "",
datum(), "PETR PLAVJANÍK",
"OSVĚTLENÍ ANULOIDU");
s = usecka(bod(0,0,0), bod(-1,1,1));
SN = bod(-6,0,2.5);
SN = bod(2,0,2.5);
SP = bod(-2,7);
alfa = kruz(Ny, SN, 2);
alfa = kruz(Pi, SP, 6);
alfa = kruz(Pi, SP, 2);
k = kolmice(Ny, x, SN);
R = p(alfa:0, k:0);
R = p(alfa:1, k:1);
a = usecka(R:0, R:2);
a = usecka(R:1, R:3);
silny = styl();
videt(silny, vse, 1, ?, ?, 2, 0);
styl(a, silny);
styl(alfa:[2,3], 1, silny);
sek(alfa:0, 1, 2, R:0, R:1, 1);
videt(alfa:0, 1, 2, 1, ?, ?, 1, 3);
sek(alfa:0, 2, 2, R:0, R:1, 0);
videt(alfa:0, 2, 2, 1, ?, ?, 2, 0);
sek(alfa:1, 1, 2, R:2, R:3, 0);
videt(alfa:1, 1, 2, 1, ?, ?, 1, 3);
sek(alfa:1, 2, 2, R:2, R:3, 1);
videt(alfa:1, 2, 2, 1, ?, ?, 2, 0);
zrus(k);
zrus(R);
popis(a, vse, 0);
o = kolmice(Pi, SP);
videt(o, vse, 1, ?, ?, 1, 2);
h = rovnobezka(x, SP);
stop();
vyska = 0.5;
krok = 0.025;
dokud (vyska <= 4.5) {
r = kulova(vyska);
prepis(vyska, vyska+krok);
}
stop();
r2 = usp(2, 1, -2, r);
cr = nuhelnik(r2);
videt(cr, 1, 1, 0, 0);
videt(r, vse, 0);
videt(r2, vse, 0);
kappa = rovnobezna(ny, sp);
zvn = p(kappa, cr);
popis(zvn, vse, 0);
sek(cr, 1, 2, zvn:0, zvn:1, 1);
videt(cr, 1, 2, 1, 0, 0, 1, 3);
sek(cr, 2, 2, zvn:1, zvn:0, 1);
videt(cr, 2, 2, 1, 0, 0, 1, 0);
lambda = rovnobezna(pi, sn:0);
zvp = beznic(p(lambda, cr));
popis(zvp, vse, 0);
sek(cr, 1, 1, zvp:1, zvp:0, 1);
videt(cr, 1, 1, 1, 0, 0, 1, 3);
sek(cr, 2, 1, zvp:0, zvp:1, 1);
videt(cr, 2, 1, 1, 0, 0, 1, 0);
stop();
i = 0;
dokud (i < pocet(r)) {
kdyz (typ(r:i)=="bod") {
x = stin(s, r:i);
sp = x:0;
sn = x:1;
zrus(x);
}
zvetsi(i);
}
popis(sp, vse, 0);
popis(sn, vse, 0);
zrus(i);
sp2 = usp(2, 1, -2, sp);
csp = nuhelnik(sp2);
sn2 = usp(2, 1, -2, sn);
csn = nuhelnik(sn2);
zrus(sn2);
zrus(sp2);
p = beznic(p(alfa:2, csp));
sek(csp, 1, p:1, p:0, 1);
sek(csp, 2, p:0, p:1, 1);
videt(csp, 1, 1, 1, 0, 0, 2, 0);
videt(csp, 2, 1, 1, 0, 0, 1, 3);
videt(csp, 3, 1, 3, 0, 0, 1, 3);
videt(csn, 1, 2, 1, 0, 0, 2, 0);
videt(csn, 2, 2, 3, 0, 0, 1, 3);
zrus(p);
videt(sp, 1, 0);
videt(sn, 2, 0);
p1 = beznic(p(alfa:1, csn)):0;
p2 = beznic(p(a:1, csn));
x1 = p1."x";
x2 = p2."x";
zrus(p1);
zrus(p2);
stop();
i = 0;
pocet = pocet(csn);
dokud (i < pocet) {
kdyz ( ((csn:i)."B"."x" < x1) & ((csn:i)."A"."x" > x2) )
videt(csN:i, 2, 1, ?, ?, 1, 3);
zvetsi(i);
}
b1 = RGB(240,220,130);
b2 = RGB(230,200,100);
bs = RGB(150,150,150);
v = vypln(ZVN:0, 1, b1, 0, alfa);
v = vypln(bod(1.63, 3.03, 0), 1, b2, 0, [cR, alfa]);
A = p(Lambda, o);
v = vypln2(A, 2, b1, 0, [alfa, a]);
v = vypln2(bod(1.38, 0, 1.26), 2, b2, 0, [cR, alfa, a]);
sv = vypln(bod(3.83, 1.91, 0), 1, bs, 0, [csP, alfa, x]);
sv = vypln(bod(3.75, 0, 0.63), 2, bs, 0, [csN, alfa, x, a]);
}
|