home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 November
/
Chip_1999-11_cd.bin
/
ctenari
/
Plavja
/
Exe
/
Priklady
/
Axonometrie_Rez_hranolu.dg
< prev
next >
Wrap
Text File
|
1999-09-02
|
3KB
|
129 lines
#vloz "kuzelosecky.dk"
#vloz "axonometrie.dk"
afinita1 (oaf, L, L0, E0) {
a1 = primka(L0, E0);
X = p(oaf, a1);
a2 = primka(L, X);
E = bod(a2, X, v(L, X));
kdyz(E:1 == L) vrat E:0; jinak vrat E:1;
}
afinita2 (osa, F, RF, E, bok) {
FE = primka(F, E);
X = p(FE, osa);
XRF = primka(X, RF);
RE = p(XRF, primka(bok));
vrat RE;
}
hlavni () {
zobrazeni("papir");
papir(29.7, 21, 1, 1); //A4
okraj(0.75,0.75,0.75,0.75,0.25,1,0);
posunutipss(0,3);
nadpis("", "", datum(), "PETR PLAVJAN═K",
"╪EZ HRANOLU");
// p°eddefinovanΘ styly
normal = styl();
sklopeny = styl();
videt(sklopeny, vse, 2, ?, ?, 1, 2);
barva(sklopeny, "seda");
silny = styl();
videt(silny, vse, 2, 0, 3, 2, 0);
schovany = styl();
videt(schovany, vse, 2, -1, 2, 1, 3);
nevidet = styl();
videt(nevidet, vse, 0);
// nastavenφ axonometrie:
axonometrie(9, 10, 11, AO, z_x, z_y, z_z, osa_x, osa_y, osa_z, sosa_x, sosa_y, sosa_z, sSxz, sSyz);
//vlastnφ postup:
// vßlec
// podstava
r = 5; // polom∞r
v = 12;
O = abod(6, 6, 0); // st°ed
A = O - bod(r,0) ;
D = O + bod(r,0) ;
k = kruz(Pi, O:1, r);
styl(k, sklopeny);
l = rovnobezka(osa_x, D:0);
l = rovnobezka(osa_y, A:0);
L = p(l:0, l:1);
oaf = primka(A:1, D:1); // osa afinity
L0 = p(k, rovnobezka(osa_z, L)):1;
A0 = A:1;
B0 = p(k, kruz(Pi, A0, r)):0;
C0 = p(k, kruz(Pi, B0, r)):0;
D0 = D:1;
E0 = p(k, kruz(Pi, D0, r)):1;
F0 = p(k, kruz(Pi, E0, r)):1;
n0 = nuhelnik(A0, B0, C0, D0, E0, F0);
styl(n0, sklopeny);
E = afinita1(oaf, L, L0, E0);
F = afinita1(oaf, L, L0, F0);
C = soumo(E, oaf);
B = soumo(F, oaf);
n = nuhelnik(A:1, B, C, D:1, E, F);
styl(n, silny);
styl(n:(0..2), schovany);
ZZ = abod(0,0,v);
Z = bod(0,ZZ."y",0):0;
n2 = n + Z;
bok = usecka(A:1, (n2:0)."A");
bok = usecka(B, (n2:1)."A");
bok = usecka(C, (n2:2)."A");
bok = usecka(D:1, (n2:3)."A");
bok = usecka(E, (n2:4)."A");
bok = usecka(F, (n2:5)."A");
styl(bok, silny);
styl(bok:[1,2], schovany);
styl(n2, silny);
ro = arovina(15,20,15);
// prunik roviny F-C-F2 s ro
FC = primka(F, C);
N = p(FC, osa_x);
NA = p(rovnobezka(osa_z, N), ro:1);
P = p(FC, ro:0);
s = primka(NA, P);
RF = p(s, primka(bok:5));
RC = p(s, primka(bok:2));
RE = afinita2(ro:0, F, RF, E, bok:4);
RD = afinita2(ro:0, F, RF, D:0, bok:3);
RB = afinita2(ro:0, D:0, RD, B:0, bok:1);
RA = afinita2(ro:0, F, RF, A:0, bok:0);
rez = nuhelnik(RA, RB, RC, RD, RE, RF);
styl(rez:[0..2], schovany);
// styl(rez:[3..5], silny);
styl(rez:4, schovany);
rozdel(rez:3, 1, 1,3, 2,0, RD, p(rez:3, n:3));
rozdel(rez:5, 1, 1,3, 2,0, p(rez:5, n:5), RA);
rez = usecka(p(rez:3, n:3), p(rez:5, n:5));
styl(rez:6, schovany);
vypln = vypln(_O, 1, RGB(200,200,200), 0, rez);
vypln = vypln(bod(-4.17, 1.53, 0), 1, RGB(225,225,225), 0,
[rez:5, n:5, bok:0]);
vypln = vypln(bod(4.54, 1.24, 0), 1, RGB(175,175,175), 0,
[rez:3, n:3, bok:3]);
}