Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,183 @@
|
|||
1000 PUBLIC NUMERIC x,y
|
||||
1010 LET x=1
|
||||
1020 LET y=2
|
||||
1030 !
|
||||
1040 DEF isLeft2(L(,),p()) = -SGN( (L(1,x)-L(2,x))*(p(y)-L(2,y)) - (p(x)-L(2,x))*(L(1,y)-L(2,y)))
|
||||
1050 !
|
||||
1060 FUNCTION inpolygon(p1(,),p2())
|
||||
1070 LET k=UBOUND(p1,1)+1
|
||||
1080 DIM send (1 TO 2,2)
|
||||
1090 LET wn=0
|
||||
1100 FOR n=1 TO UBOUND(p1,1)
|
||||
1110 LET index=MOD(n, k)
|
||||
1120 LET nextindex=MOD(n+1, k)
|
||||
1130 IF nextindex=0 THEN LET nextindex=1
|
||||
1140 LET send(1,x)=p1(index,x)
|
||||
1150 LET send(2,x)=p1(nextindex,x)
|
||||
1160 LET send(1,y)=p1(index,y)
|
||||
1170 LET send(2,y)=p1(nextindex,y)
|
||||
1180 IF p1(index,y)<=p2(y) THEN
|
||||
1190 IF p1(nextindex,y)>p2(y) THEN
|
||||
1200 IF isleft2(send,p2)>=0 THEN !'=
|
||||
1210 LET wn=wn+1
|
||||
1220 END IF
|
||||
1230 END IF
|
||||
1240 ELSE
|
||||
1250 IF p1(nextindex,y)<=p2(y) THEN
|
||||
1260 IF isleft2(send,p2)<=0 THEN !'=
|
||||
1270 LET wn=wn-1
|
||||
1280 END IF
|
||||
1290 END IF
|
||||
1300 END IF
|
||||
1310 NEXT n
|
||||
1320 LET inpolygon = wn
|
||||
1330 END FUNCTION
|
||||
1340 !
|
||||
1350 DIM type(1 TO 2)
|
||||
1360 !
|
||||
1370 DIM square(4,2)
|
||||
1380 MAT READ square
|
||||
1390 DATA 0,0,10,0,10,10,0,10
|
||||
1400 !
|
||||
1410 DIM hole(4,2)
|
||||
1420 MAT READ hole
|
||||
1430 DATA 2.5,2.5,7.5,2.5,7.5,7.5,2.5,7.5
|
||||
1440 !
|
||||
1450 DIM strange(8,2)
|
||||
1460 MAT READ strange
|
||||
1470 DATA 0,0,2.5,2.5,0,10,2.5,7.5,7.5,7.5,10,10,10,0,2.5,2.5
|
||||
1480 !
|
||||
1490 DIM exagon(6,2)
|
||||
1500 MAT READ exagon
|
||||
1510 DATA 3,0,7,0,10,5,7,10,3,10,0,5
|
||||
1520 !
|
||||
1530 ! printouts
|
||||
1540 FOR z=1 TO 4
|
||||
1550 SELECT CASE z
|
||||
1560 CASE 1
|
||||
1570 PRINT "squared"
|
||||
1580 PRINT "(5,5) ";TAB(12);
|
||||
1590 MAT READ type
|
||||
1600 DATA 5,5
|
||||
1610 IF inpolygon(square,type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1620 MAT READ type
|
||||
1630 DATA 5,8
|
||||
1640 PRINT "(5,8) ";TAB(12);
|
||||
1650 IF inpolygon(square,type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1660 PRINT "(-10,5) ";TAB(12);
|
||||
1670 MAT READ type
|
||||
1680 DATA -10,5
|
||||
1690 IF inpolygon(square,type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1700 Print "(0,5) ";Tab(12);
|
||||
1710 MAT READ type
|
||||
1720 DATA 0,5
|
||||
1730 IF inpolygon(square,type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1740 Print "(10,5) ";Tab(12);
|
||||
1750 MAT READ type
|
||||
1760 DATA 10,5
|
||||
1770 IF inpolygon(square,type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1780 PRINT "(8,5) ";TAB(12);
|
||||
1790 MAT READ type
|
||||
1800 DATA 8,5
|
||||
1810 IF inpolygon(square,Type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1820 PRINT "(10,10) ";TAB(12);
|
||||
1830 MAT READ type
|
||||
1840 DATA 10,10
|
||||
1850 IF inpolygon(square,Type) <> 0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1860 PRINT
|
||||
1870 CASE 2
|
||||
1880 PRINT "squared hole"
|
||||
1890 PRINT "(5,5) ";TAB(12);
|
||||
1900 MAT READ type
|
||||
1910 DATA 5,5
|
||||
1920 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1930 Print "(5,8) ";Tab(12);
|
||||
1940 MAT READ type
|
||||
1950 DATA 5,8
|
||||
1960 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
1970 PRINT "(-10,5) ";TAB(12);
|
||||
1980 MAT READ type
|
||||
1990 DATA -10,5
|
||||
2000 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2010 PRINT "(0,5) ";TAB(12);
|
||||
2020 MAT READ type
|
||||
2030 DATA 0,5
|
||||
2040 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2050 PRINT "(10,5) ";TAB(12);
|
||||
2060 MAT READ type
|
||||
2070 DATA 10,5
|
||||
2080 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2090 PRINT "(8,5) ";TAB(12);
|
||||
2100 MAT READ type
|
||||
2110 DATA 8,5
|
||||
2120 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2130 PRINT "(10,10) ";TAB(12);
|
||||
2140 MAT READ type
|
||||
2150 DATA 10,10
|
||||
2160 IF NOT inpolygon(hole,Type)<>0 AND inpolygon(square,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2170 PRINT
|
||||
2180 CASE 3
|
||||
2190 PRINT "strange"
|
||||
2200 PRINT "(5,5) ";TAB(12);
|
||||
2210 MAT READ type
|
||||
2220 DATA 5,5
|
||||
2230 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2240 PRINT "(5,8) ";TAB(12);
|
||||
2250 MAT READ type
|
||||
2260 DATA 5,8
|
||||
2270 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2280 PRINT "(-10,5) ";TAB(12);
|
||||
2290 MAT READ type
|
||||
2300 DATA -10,5
|
||||
2310 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2320 PRINT "(0,5) ";TAB(12);
|
||||
2330 MAT READ type
|
||||
2340 DATA 0,5
|
||||
2350 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2360 PRINT "(10,5) ";TAB(12);
|
||||
2370 MAT READ type
|
||||
2380 DATA 10,5
|
||||
2390 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2400 PRINT "(8,5) ";TAB(12);
|
||||
2410 MAT READ type
|
||||
2420 DATA 8,5
|
||||
2430 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2440 PRINT "(10,10) ";TAB(12);
|
||||
2450 MAT READ type
|
||||
2460 DATA 10,10
|
||||
2470 IF inpolygon(strange,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2480 PRINT
|
||||
2490 CASE 4
|
||||
2500 PRINT "exagon"
|
||||
2510 PRINT "(5,5) ";TAB(12);
|
||||
2520 MAT READ type
|
||||
2530 DATA 5,5
|
||||
2540 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2550 PRINT "(5,8) ";TAB(12);
|
||||
2560 MAT READ type
|
||||
2570 DATA 5,8
|
||||
2580 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2590 PRINT "(-10,5) ";TAB(12);
|
||||
2600 MAT READ type
|
||||
2610 DATA -10,5
|
||||
2620 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2630 PRINT "(0,5) ";TAB(12);
|
||||
2640 MAT READ type
|
||||
2650 DATA 0,5
|
||||
2660 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2670 PRINT "(10,5) ";TAB(12);
|
||||
2680 MAT READ type
|
||||
2690 DATA 10,5
|
||||
2700 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2710 PRINT "(8,5) ";TAB(12);
|
||||
2720 MAT READ type
|
||||
2730 DATA 8,5
|
||||
2740 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2750 PRINT "(10,10) ";TAB(12);
|
||||
2760 MAT READ type
|
||||
2770 DATA 10,10
|
||||
2780 IF inpolygon(exagon,Type)<>0 THEN PRINT "in" ELSE PRINT "out"
|
||||
2790 PRINT
|
||||
2800 END SELECT
|
||||
2810 NEXT z
|
||||
2820 END
|
||||
Loading…
Add table
Add a link
Reference in a new issue