2 ' made by Svjatoslav Agejenko
\r
4 ' H-Page: svjatoslav.eu
\r
5 ' E-Mail: svjatoslavagejenko@gmail.com
\r
12 DECLARE SUB inpur ()
\r
14 DECLARE SUB box (x1!, y1!, x2!, y2!)
\r
15 DECLARE SUB pri (x!, y!, s!, c!, a$)
\r
16 DECLARE SUB getfnt ()
\r
18 DECLARE SUB mkback ()
\r
20 DECLARE SUB calc (x1!, y1!, z1!, x2!, y2!, z2!, x3!, y3!, z3!, c!)
\r
21 DECLARE SUB getan (x1!, y1!, x2!, y2!, N!)
\r
22 DECLARE SUB rot (zx!, zy!, x1!, y1!, N!)
\r
23 DECLARE SUB getcol (x1!, y1!, z1!, x2!, y2!, z2!, x3!, y3!, z3!, c!)
\r
24 DECLARE SUB fp1 (x1!, y1!, x2!, y2!, x3!, c!)
\r
25 DECLARE SUB fp (x1!, y1!, x2!, y2!, x3!, y3!, c!)
\r
27 DECLARE SUB pal (r!, g!, b!, c!)
\r
29 DECLARE SUB start ()
\r
32 DIM SHARED angl1, angl2
\r
33 DIM SHARED font(0 TO 7, 0 TO 7, 32 TO 150)
\r
50 SUB box (x1, y1, x2, y2)
\r
53 'IF a <= 5 THEN buf1(a) = 120 + (SQR((20 - a) * a))
\r
54 'IF (a > 5) AND (a < 25) THEN buf1(a) = 120 + 10
\r
55 'IF a >= 25 THEN buf1(a) = 120 + (SQR((30 - a) * (a - 10)))
\r
60 IF y - y1 <= 10 THEN
\r
61 s = (SQR((20 - (y - y1)) * (y - y1)))
\r
64 IF y2 - y <= 10 THEN
\r
65 s = (SQR((20 - (y2 - y)) * (y2 - y)))
\r
68 FOR x = x1 - s TO x2 + s
\r
72 IF c > 245 THEN c = 245
\r
80 SUB calc (tx1, ty1, tz1, tx2, ty2, tz2, tx3, ty3, tz3, c)
\r
94 'LINE (x1, y1)-(x2, y2), 3
\r
95 'LINE (x3, y3)-(x2, y2), 3
\r
96 'LINE (x1, y1)-(x3, y3), 3
\r
99 getan x1, y1, x2, y2, n1
\r
100 rot x1, y1, x2, y2, -n1
\r
101 rot x1, y1, x3, y3, -n1
\r
103 getan y1, z1, y2, z2, n2
\r
105 rot y1, z1, y2, z2, -n2
\r
106 rot y1, z1, y3, z3, -n2
\r
108 getan x1, z1, x3, z3, n3
\r
110 rot x1, z1, x2, z2, -n3
\r
111 rot x1, z1, x3, z3, -n3
\r
117 rot x1, z1, x4, z4, n3
\r
118 rot y1, z1, y4, z4, n2
\r
119 rot x1, y1, x4, y4, n1
\r
121 'LINE (tx1, ty1)-(x4, y4), 255
\r
124 a = SQR((x1 - x4) ^ 2 + (y1 - y4) ^ 2)
\r
126 IF c < 0 THEN c = 0
\r
129 SUB fp (x1, y1, x2, y2, x3, y3, c)
\r
132 DIM yb(-100 TO 300)
\r
152 IF my2 < my1 THEN SWAP my1, my2: SWAP mx1, mx2
\r
153 FOR y = my1 TO my2 - 1
\r
154 x = mx1 + (mx2 - mx1) * ((y - my1) / (my2 - my1))
\r
158 LINE (x, y)-(yb(y), y), c
\r
165 'LINE (x1, y1)-(x2, y2), 0
\r
166 'LINE (x3, y3)-(x2, y2), 0
\r
167 'LINE (x1, y1)-(x3, y3), 0
\r
171 SUB getan (x1, y1, x2, y2, N)
\r
173 IF x2 > x1 THEN N = pi / 2 ELSE N = pi * 1.5
\r
178 IF x2 = x1 THEN N = pi: GOTO 2
\r
180 N = (pi * 1) - ATN((x2 - x1) / (y2 - y1))
\r
182 N = pi + ATN((x1 - x2) / (y2 - y1))
\r
185 IF x2 = x1 THEN N = 0: GOTO 2
\r
187 N = ATN((x2 - x1) / (y1 - y2))
\r
189 N = pi * 2 - ATN((x1 - x2) / (y1 - y2))
\r
196 'DIM SHARED font(0 TO 7, 0 TO 7, 10 TO 200)
\r
205 font(x, y, a) = POINT(x, y)
\r
230 OUT &H3C9, SIN(a / 22) * 30 + 30
\r
231 OUT &H3C9, SIN(a / 18) * 5 + 5
\r
232 OUT &H3C9, COS(a / 12) * 10 + 10
\r
238 OUT &H3C9, SIN(b / 22) * 4 + 10
\r
239 OUT &H3C9, SIN(b / 18) * 4 + 10
\r
240 OUT &H3C9, COS(b / 12) * 4 + 10
\r
258 c2 = POINT(x1 + s, y1)
\r
259 c3 = POINT(x1, y1 + s)
\r
260 c4 = POINT(x1 + s, y1 + s)
\r
264 cc2 = ((c1 + c2) / 2) + (RND * 6) - 3
\r
265 IF cc2 > lm THEN cc2 = lm
\r
267 cc3 = ((c1 + c3) / 2) + (RND * 6) - 3
\r
268 IF cc3 > lm THEN cc3 = lm
\r
270 cc4 = ((c2 + c4) / 2) + (RND * 6) - 3
\r
271 IF cc4 > lm THEN cc4 = lm
\r
273 cc5 = ((c3 + c4) / 2) + (RND * 6) - 3
\r
274 IF cc5 > lm THEN cc5 = lm
\r
276 cc1 = ((cc2 + cc3 + cc4 + cc5) / 4) + (RND * 6) - 3
\r
277 IF cc1 > lm THEN cc1 = lm
\r
281 PSET (x1 + sp, y1 + sp), cc1
\r
282 PSET (x1 + sp, y1), cc2
\r
283 PSET (x1, y1 + sp), cc3
\r
284 PSET (x1 + s, y1 + sp), cc4
\r
285 PSET (x1 + sp, y1 + s), cc5
\r
290 IF s > 2 THEN GOTO 5
\r
297 SUB pal (r, g, b, c)
\r
298 IF r < 0 THEN r = 0
\r
299 IF g < 0 THEN g = 0
\r
300 IF b < 0 THEN b = 0
\r
301 IF r > 63 THEN r = 63
\r
302 IF g > 63 THEN g = 63
\r
303 IF b > 63 THEN b = 63
\r
311 SUB pri (x, y, s, c, a$)
\r
314 FOR a = 1 TO LEN(a$)
\r
315 b = ASC(RIGHT$(LEFT$(a$, a), 1))
\r
316 IF b > 150 OR b < 32 THEN GOTO 7
\r
319 c1 = font(x1, y1, b)
\r
320 IF c1 > 0 THEN PSET (x1 + x2, y1 + y), c
\r
329 SUB rot (zx, zy, x1, y1, N)
\r
334 x1 = x2 * s1 - y2 * c1 + zx
\r
335 y1 = x2 * c1 + y2 * s1 + zy
\r
345 DIM lin1!(0 TO 1500)
\r
346 DIM lin2!(0 TO 1500)
\r
347 DIM lbx1(1 TO 1500)
\r
348 DIM lby1(1 TO 1500)
\r
349 DIM lbx2(1 TO 1500)
\r
350 DIM lby2(1 TO 1500)
\r
354 DIM an1s, an2s, an3s
\r
373 pal 40, 40, 40, 254
\r
378 OPEN "data.dat" FOR INPUT AS #1
\r
391 INPUT #1, b, b, l1, l2, l3
\r
393 FOR a = 1 TO inpo - 1
\r
394 INPUT #1, b, b, l1!, l2!, l3!
\r
405 PRINT STR$(INT(a / (inpo - 1) * 100)) + "% valmis"
\r
412 IF sj$ = "q" THEN END
\r
415 an1 = COS(tim / 29) * a
\r
416 an2 = (pii / 2) + SIN(tim / 42) * a
\r
426 IF nlt > nl THEN nlt = nl: ehi = 0
\r
434 z2 = z * s1 + y * c1
\r
435 y1 = y * s1 - z * c1
\r
437 z1 = z2 * s2 + x * c2
\r
438 x1 = x * s2 - z2 * c2
\r
443 x1 = x1 / z1 * 74 * 2
\r
444 y1 = y1 / z1 * 65 * 2
\r
457 LINE (lbx1(a), lby1(a))-(lbx2(a), lby2(a)), 0
\r
458 LINE (x1, y1)-(x2, y2), 255
\r
465 IF tim < 280 THEN GOTO 3
\r
470 IF lin1!(b) = nlin1! THEN IF lin2!(b) = nlin2! THEN RETURN
\r
471 IF lin1!(b) = nlin2! THEN IF lin2!(b) = nlin1! THEN RETURN
\r
487 box 30, 50, 250, 180
\r
489 pal 32, 64, 32, 250
\r
491 pri 30, 70 + y, 1, 250, " Kasutatud kirjandus:"
\r
493 pri 30, 70 + y, 1, 250, "An augmented computer vision"
\r
495 pri 30, 70 + y, 1, 250, "approach for anhanced"
\r
497 pri 30, 70 + y, 1, 250, "understanding. M.Adjouadi,"
\r
499 pri 30, 70 + y, 1, 250, "J.Riley;"
\r
501 pri 30, 70 + y, 1, 250, "Journal of Rehabilitation"
\r
503 pri 30, 70 + y, 1, 250, "Research & Development,"
\r
505 pri 30, 70 + y, 1, 250, "Oct 95,Vol. 32 issue 3"
\r
525 DIM pol1(1 TO 2000)
\r
526 DIM pol2(1 TO 2000)
\r
527 DIM pol3(1 TO 2000)
\r
532 OPEN "data.dat" FOR INPUT AS #1
\r
545 INPUT #1, b, b, l1, l2, l3
\r
547 FOR a = 1 TO inpo - 1
\r
548 INPUT #1, b, b, l1, l2, l3
\r
565 z2 = z * s1 + y * c1
\r
566 y1 = y * s1 - z * c1
\r
567 z1 = z2 * s2 + x * c2
\r
568 x1 = x * s2 - z2 * c2
\r
570 x1 = x1 / z1 * 74 * 2
\r
571 y1 = y1 / z1 * 65 * 2
\r
578 'pal COS(a / 9) * 30 + 30, SIN(a / 5) * 30 + 30, SIN(a / 13) * 30 + 30, a
\r
582 pal a * 1.1 + 20, a * 1.1 + 10, a * 1.1, a
\r
588 polz(a) = (rpz(pol1(a)) + rpz(pol2(a)) + rpz(pol3(a)))
\r
596 IF polz(b) > su THEN su = polz(b): sun = b
\r
603 polz(sun) = polz(e)
\r
604 pol1(sun) = pol1(e)
\r
605 pol2(sun) = pol2(e)
\r
606 pol3(sun) = pol3(e)
\r
608 calc rpx(p1), rpy(p1), rpz(p1), rpx(p2), rpy(p2), rpz(p2), rpx(p3), rpy(p3), rpz(p3), d
\r
609 fp INT(rpx(p1)), INT(rpy(p1)), INT(rpx(p2)), INT(rpy(p2)), INT(rpx(p3)), INT(rpy(p3)), INT(d)
\r
617 DIM buf(1 TO 10000)
\r
624 IF a <= 5 THEN buf1(a) = 120 + (SQR((20 - a) * a))
\r
625 IF (a > 5) AND (a < 25) THEN buf1(a) = 120 + 10
\r
626 IF a >= 25 THEN buf1(a) = 120 + (SQR((30 - a) * (a - 10)))
\r
630 FOR x = 10 TO 300 STEP 10
\r
631 GET (x, 0)-(x + 9, 198), buf(1)
\r
632 PUT (x, 1), buf(1), PSET
\r
635 pal a * 1.1 + (20 - y), a * 1.1 + 10 + (y / 1.5), a * 1.1, a
\r
638 LINE (160 - buf1(y), 20)-(160 + buf1(y), 20), 255
\r
644 PRINT "Tehisintellekt"
\r
649 IF c > 0 THEN CIRCLE (x * 2 + 50, y * 3 + 26), 2, 0
\r
652 c = POINT(x, y + 1)
\r
653 IF c > 0 THEN CIRCLE (x * 2 + 50, (y + 1) * 3 + 26), 2, 253
\r
662 FOR x = 10 TO 300 STEP 10
\r
663 GET (x, y)-(x + 9, 198), buf(1)
\r
664 PUT (x, y - 1), buf(1), PSET
\r
671 PRINT " autor: Svjatoslav Agejenko 30.09.2001 "
\r
672 GET (0, 0)-(319, 8), buf(1)
\r
675 PUT (0, 190), buf(1), PSET
\r
677 pal 0, a, a * 2, 253
\r
687 box 30, 50, 290, 150
\r
689 pal 32, 64, 32, 250
\r
691 pri 30, 70 + y, 1, 250, " Ruumiliselt laiendatud n�gemise"
\r
693 pri 30, 70 + y, 1, 250, "l�henemine kujutise tuvastamiseks"
\r
695 pri 30, 70 + y, 1, 250, "eesm�rk: + interpriteerimine"
\r
697 pri 30, 70 + y, 1, 250, " + automaatjuhtimine"
\r
706 box 30, 50, 290, 150
\r
708 pal 32, 64, 32, 250
\r
710 pri 30, 70 + y, 1, 250, "Tunnuste ekstraheerimise protsess"
\r
712 pri 30, 70 + y, 1, 250, "a) Laplace - Gaussi operaator;"
\r
714 pri 30, 70 + y, 1, 250, "b) lainekese teisenduse multi-"
\r
716 pri 30, 70 + y, 1, 250, " skaalaline serva avastamine;"
\r
718 pri 30, 70 + y, 1, 250, "c) h�perveeru teooria lihtsate"
\r
720 pri 30, 70 + y, 1, 250, " rakkude p�him�tted."
\r
731 box 30, 50, 290, 150
\r
733 pal 32, 64, 32, 250
\r
735 pri 30, 70 + y, 1, 250, "* S�gavusinfo ekstraheerimine"
\r
737 pri 30, 70 + y, 1, 250, "* Ruumilise n�gemise kasutamine"
\r
739 pri 30, 70 + y, 1, 250, "* Sarnasusm��de"
\r
741 pri 30, 70 + y, 1, 250, "* Sobitamisstrateegia"
\r
750 FOR y = a TO 199 STEP 20
\r
751 LINE (0, y)-(319, y), 0
\r
767 DIM lin1(0 TO 1000)
\r
768 DIM lin2(0 TO 1000)
\r
769 DIM linc(0 TO 1000)
\r
770 DIM lbx1(1 TO 1000)
\r
771 DIM lby1(1 TO 1000)
\r
772 DIM lbx2(1 TO 1000)
\r
773 DIM lby2(1 TO 1000)
\r
783 DIM hlax, hlay, hlaz
\r
808 FOR y = 0 TO 100 STEP s
\r
809 FOR x = 0 TO 100 STEP s
\r
811 c2 = POINT(x + s, y)
\r
812 c3 = POINT(x, y + s)
\r
813 c4 = POINT(x + s, y + s)
\r
814 c5 = (c1 + c2 + c3 + c4) / 4 + RND * s * 6 - sp * 7
\r
815 c6 = (c2 + c4) / 2 + RND * s * 6 - sp * 7
\r
816 c7 = (c3 + c4) / 2 + RND * s * 6 - sp * 7
\r
817 IF c5 > 50 THEN c5 = 50
\r
818 IF c5 < 0 THEN c5 = 0
\r
819 IF c6 > 50 THEN c6 = 50
\r
820 IF c6 < 0 THEN c6 = 0
\r
821 IF c7 > 50 THEN c7 = 50
\r
822 IF c7 < 0 THEN c7 = 0
\r
823 PSET (x + sp, y + sp), c5
\r
824 PSET (x + s, y + sp), c6
\r
825 PSET (x + sp, y + s), c7
\r
829 IF s > 1 THEN GOTO 14
\r
832 FOR z = 1 TO 400 STEP 20
\r
833 FOR x = 1 TO 400 STEP 20
\r
836 py(np) = POINT(z / 20 + 10, x / 20 + 10) * 2
\r
854 LINE (0, 0)-(319, 199), 0, BF
\r
871 OPEN "data2.dat" FOR INPUT AS #1
\r
877 IF x = 999 THEN GOTO 16
\r
885 IF x = 999 THEN GOTO 17
\r
887 lin1(nl) = x + np + 1
\r
888 lin2(nl) = y + np + 1
\r
921 py(np + 5) = yy - 5
\r
925 lin1(nl + 1) = np + 1
\r
926 lin2(nl + 1) = np + 2
\r
929 lin1(nl + 2) = np + 2
\r
930 lin2(nl + 2) = np + 3
\r
933 lin1(nl + 3) = np + 3
\r
934 lin2(nl + 3) = np + 4
\r
937 lin1(nl + 4) = np + 4
\r
938 lin2(nl + 4) = np + 1
\r
941 lin1(nl + 5) = np + 1
\r
942 lin2(nl + 5) = np + 5
\r
945 lin1(nl + 6) = np + 2
\r
946 lin2(nl + 6) = np + 5
\r
949 lin1(nl + 7) = np + 3
\r
950 lin2(nl + 7) = np + 5
\r
953 lin1(nl + 8) = np + 4
\r
954 lin2(nl + 8) = np + 5
\r
964 IF INKEY$ <> "" THEN miin = 1
\r
965 IF miin > 150 THEN GOTO 13
\r
966 IF miin <> 0 THEN miin = miin + 7
\r
968 my = 50 - hlay - miin
\r
975 getan desx, desz, hlax, hlaz, desa
\r
976 IF desa - hlka > pi THEN desa = desa - (pi * 2)
\r
977 IF hlka - desa > pi THEN desa = desa + (pi * 2)
\r
979 FOR a = nl - 7 TO nl
\r
984 IF desa = hlka THEN eta = 3
\r
985 IF a > .05 THEN a = .05
\r
986 IF a < -.05 THEN a = -.05
\r
991 v = SQR(x * x + z * z)
\r
992 IF v < 5 THEN eta = 4
\r
994 hlax = hlax + x / v
\r
995 hlaz = hlaz + z / v
\r
997 FOR a = np - 4 TO np
\r
1000 IF py(np) < 3 - hlay THEN
\r
1001 FOR a = nl - 7 TO nl
\r
1002 LINE (lbx1(a), lby1(a))-(lbx2(a), lby2(a)), 0
\r
1008 IF mil <= 0 THEN eta = 7
\r
1016 y = 60 - py(INT((hlaz + 10) / 20) * 20 + INT((hlax + 10) / 20))
\r
1017 IF hlay > y + 5 THEN hlay = hlay - 1
\r
1018 IF hlay < y THEN hlay = hlay + 1
\r
1019 IF hlay > y + 25 THEN hlay = hlay - 1: ' SOUND 1000, 1
\r
1020 IF hlay < y - 20 THEN hlay = hlay + 1: ' SOUND 1000, 1
\r
1024 FOR a = 0 TO hlknu - 5
\r
1027 px(a + hlkin) = x * s1 + z * c1 + hlax
\r
1028 py(a + hlkin) = hlky(a + 1) - hlay
\r
1029 pz(a + hlkin) = z * s1 - x * c1 + hlaz
\r
1035 FOR a = hlknu - 4 TO hlknu - 1
\r
1038 px(a + hlkin) = x * s1 + z * c1 + hlax
\r
1039 py(a + hlkin) = hlky(a + 1) - hlay
\r
1040 pz(a + hlkin) = z * s1 - x * c1 + hlaz
\r
1045 an1 = an1 + SIN(tim / 100) / 20
\r
1046 an2 = SIN(tim / 42) * .3 + 1.15
\r
1058 z2 = z * s1 + x * c1
\r
1059 x1 = x * s1 - z * c1
\r
1061 z1 = z2 * s2 + y * c2
\r
1062 y1 = y * s2 - z2 * c2
\r
1066 IF z1 < 1 THEN px1(a) = -1: GOTO 11
\r
1067 x1 = x1 / z1 * 74 * 2
\r
1068 y1 = y1 / z1 * 65 * 2
\r
1080 LINE (lbx1(a), lby1(a))-(lbx2(a), lby2(a)), 0
\r
1081 IF (x1 = -1) OR (x2 = -1) THEN GOTO 12
\r
1084 LINE (x1, y1)-(x2, y2), linc(a)
\r
1091 IF kau > 200 THEN kau = kau - 10
\r
1092 IF tim < 28000 THEN GOTO 10
\r
1100 box 30, 50, 290, 80
\r
1102 pal 32, 64, 32, 250
\r
1104 pri 30, 70 + y, 1, 250, " T�nan t�helepanu eest"
\r
1115 fac = 360 / (pi * 2)
\r