by ANALOG Readers with Tom Hudson
In issue 16 of ANALOG, I presented Solid States, a 3-D object plotting system. Readers were asked to send in their 3-D object data and modifications to the original program. Well, we've received a good deal of feedback, and I decided to print some of the more interesting items in lieu of my Basic Training column.
For those readers who do not have the Solid States program, you can still order issue 16 as a back issue. See the ad elsewhere in this issue.
If you have a copy of Solid States, get started typing in the data below!
Paul J. Goldernew, of Pittsburg, PA sent in our first Solid States graphic. It is a 3-D representation of the "A" in the ANALOG logo. Paul's original data file also contained the entire ANALOG logo above the "A," but it was just too big (157 points, 158 lines) for us to print. I did a little editing and cut it down to just the "A" itself, and came out with 100 points and 110 lines. Paul's effort shows how curved lines can be shown with Solid States.
Points: 100 | Lines: 110 | |||||
---|---|---|---|---|---|---|
Point | X | Y | Z | Line | From | To |
1 | 9 | -7 | 6 | 1 | 1 | 2 |
2 | 9 | 7 | 6 | 2 | 2 | 3 |
3 | 8.75 | 7.75 | 6 | 3 | 3 | 4 |
4 | 8.25 | 8.25 | 6 | 4 | 4 | 5 |
5 | 7.75 | 8.75 | 6 | 5 | 5 | 6 |
6 | 7 | 9 | 6 | 6 | 6 | 7 |
7 | -5 | 9 | 6 | 7 | 7 | 8 |
8 | -9 | 5 | 6 | 8 | 8 | 9 |
9 | -9 | -7 | 6 | 9 | 9 | 10 |
10 | -8.75 | -7.75 | 6 | 10 | 10 | 11 |
11 | -8.25 | -8.25 | 6 | 11 | 11 | 12 |
12 | -7.75 | -8.75 | 6 | 12 | 12 | 13 |
13 | -7 | -9 | 6 | 13 | 13 | 14 |
14 | -3 | -9 | 6 | 14 | 14 | 15 |
15 | -2.25 | -8.75 | 6 | 15 | 15 | 16 |
16 | -1.5 | -8 | 6 | 16 | 16 | 17 |
17 | -1 | -7 | 6 | 17 | 17 | 18 |
18 | -1 | -6 | 6 | 18 | 18 | 19 |
19 | -1.25 | -5 | 6 | 19 | 19 | 20 |
20 | -2 | -3 | 6 | 20 | 20 | 21 |
21 | 3 | -3 | 6 | 21 | 21 | 22 |
22 | 4 | -2.75 | 6 | 22 | 22 | 23 |
23 | 4.5 | -2 | 6 | 23 | 23 | 24 |
24 | 4.75 | -1 | 6 | 24 | 24 | 25 |
25 | 4.5 | 0 | 6 | 25 | 25 | 26 |
26 | 4 | 0.75 | 6 | 26 | 26 | 27 |
27 | 3 | 1 | 6 | 27 | 27 | 28 |
28 | -4 | 1 | 6 | 28 | 28 | 29 |
29 | -5 | 2.5 | 6 | 29 | 29 | 30 |
30 | -5 | 3.5 | 6 | 30 | 30 | 31 |
31 | -4.5 | 4 | 6 | 31 | 31 | 32 |
32 | -3.75 | 4.75 | 6 | 32 | 32 | 33 |
33 | -3 | 5 | 6 | 33 | 33 | 34 |
34 | 5 | 5 | 6 | 34 | 34 | 35 |
35 | 5 | -7 | 6 | 35 | 35 | 36 |
36 | 5.25 | -8 | 6 | 36 | 36 | 37 |
37 | 6 | -8.75 | 6 | 37 | 37 | 38 |
38 | 7 | -9 | 6 | 38 | 38 | 39 |
39 | 8 | -8.75 | 6 | 39 | 39 | 40 |
40 | 8.75 | -8 | 6 | 40 | 40 | 1 |
41 | 7 | -8.25 | 6 | 41 | 41 | 42 |
42 | 6 | -8 | 6 | 42 | 42 | 43 |
43 | 5.5 | -7 | 6 | 43 | 43 | 44 |
44 | 5.75 | -6 | 6 | 44 | 44 | 45 |
45 | 6 | -5.5 | 6 | 45 | 45 | 46 |
46 | 7 | -5.25 | 6 | 46 | 46 | 47 |
47 | 8 | -5.5 | 6 | 47 | 47 | 48 |
48 | 8.5 | -6 | 6 | 48 | 48 | 49 |
49 | 8.75 | -7 | 6 | 49 | 49 | 50 |
50 | 8 | -8 | 6 | 50 | 50 | 41 |
51 | 9 | -7 | 0 | 51 | 51 | 52 |
52 | 9 | 7 | 0 | 52 | 52 | 53 |
53 | 8.75 | 7.75 | 0 | 53 | 53 | 54 |
54 | 8.25 | 8.25 | 0 | 54 | 54 | 55 |
55 | 7.75 | 8.75 | 0 | 55 | 55 | 56 |
56 | 7 | 9 | 0 | 56 | 56 | 57 |
57 | -5 | 9 | 0 | 57 | 57 | 58 |
58 | -9 | 5 | 0 | 58 | 58 | 59 |
59 | -9 | -7 | 0 | 59 | 59 | 60 |
60 | -8.75 | -7.75 | 0 | 60 | 60 | 61 |
61 | -8.25 | -8.25 | 0 | 61 | 61 | 62 |
62 | -7.75 | -8.75 | 0 | 62 | 62 | 63 |
63 | -7 | -9 | 0 | 63 | 63 | 64 |
64 | -3 | -9 | 0 | 64 | 64 | 65 |
65 | -2.25 | -8.75 | 0 | 65 | 65 | 66 |
66 | -1.5 | -8 | 0 | 66 | 66 | 67 |
67 | -1 | -7 | 0 | 67 | 67 | 68 |
68 | -1 | -6 | 0 | 68 | 68 | 69 |
69 | -1.25 | -5 | 0 | 69 | 69 | 70 |
70 | -2 | -3 | 0 | 70 | 70 | 71 |
71 | 3 | -3 | 0 | 71 | 71 | 72 |
72 | 4 | -2.75 | 0 | 72 | 72 | 73 |
73 | 4.5 | -2 | 0 | 73 | 73 | 74 |
74 | 4.75 | -1 | 0 | 74 | 74 | 75 |
75 | 4.5 | 0 | 0 | 75 | 75 | 76 |
76 | 4 | 0.75 | 0 | 76 | 76 | 77 |
77 | 3 | 1 | 0 | 77 | 77 | 78 |
78 | -4 | 1 | 0 | 78 | 78 | 79 |
79 | -5 | 2.5 | 0 | 79 | 79 | 80 |
80 | -5 | 3.5 | 0 | 80 | 80 | 81 |
81 | -4.5 | 4 | 0 | 81 | 81 | 82 |
82 | -3.75 | 4.75 | 0 | 82 | 82 | 83 |
83 | -3 | 5 | 0 | 83 | 83 | 84 |
84 | 5 | 5 | 0 | 84 | 84 | 85 |
85 | 5 | -7 | 0 | 85 | 85 | 86 |
86 | 5.25 | -8 | 0 | 86 | 86 | 87 |
87 | 6 | -8.75 | 0 | 87 | 87 | 88 |
88 | 7 | -9 | 0 | 88 | 88 | 89 |
89 | 8 | -8.75 | 0 | 89 | 89 | 90 |
90 | 8.75 | -8 | 0 | 90 | 90 | 51 |
91 | 7 | -8.25 | 0 | 91 | 91 | 92 |
92 | 6 | -8 | 0 | 92 | 92 | 93 |
93 | 5.5 | -7 | 0 | 93 | 93 | 94 |
94 | 5.75 | -6 | 0 | 94 | 94 | 95 |
95 | 6 | -5.5 | 0 | 95 | 95 | 96 |
96 | 7 | -5.25 | 0 | 96 | 96 | 97 |
97 | 8 | -5.5 | 0 | 97 | 97 | 98 |
98 | 8.5 | -6 | 0 | 98 | 98 | 99 |
99 | 8.75 | -7 | 0 | 99 | 99 | 100 |
100 | 8 | -8 | 0 | 100 | 100 | 91 |
101 | 8 | 58 | ||||
102 | 9 | 59 | ||||
103 | 7 | 57 | ||||
104 | 28 | 78 | ||||
105 | 20 | 70 | ||||
106 | 24 | 74 | ||||
107 | 34 | 84 | ||||
108 | 35 | 85 | ||||
109 | 1 | 51 | ||||
110 | 2 | 52 |
Try the following views:
OBSERVER LOC. LOOKED AT ZOOM ------------- --------- ---- 30,-50,100 0,6,0 1.5
OBSERVER LOC. LOOKED AT ZOOM ------------- --------- ---- -12,-12,1 0,4.5,3 .2
Nick A. Brienza, of Columbia, MD, sent in a 3-D representation of a nuclear reactor cooling tower. Once again, this graphic shows how curved surfaces can be shown with Solid States. You'll note that this object was defined using only 32 points, a pretty efficient job.
Points: 32 | Lines: 40 | |||||
---|---|---|---|---|---|---|
Point | X | Y | Z | Line | From | To |
1 | -2 | 0 | 8 | 1 | 1 | 2 |
2 | -2.25 | 0 | 4 | 2 | 2 | 3 |
3 | -2.75 | 0 | 2 | 3 | 3 | 4 |
4 | -4 | 0 | 0 | 4 | 5 | 6 |
5 | -1.3 | 1.3 | 8 | 5 | 6 | 7 |
6 | -1.5 | 1.5 | 4 | 6 | 7 | 8 |
7 | -1.9 | 1.9 | 2 | 7 | 9 | 10 |
8 | -2.7 | 2.7 | 0 | 8 | 10 | 11 |
9 | 0 | 2 | 8 | 9 | 11 | 12 |
10 | 0 | 2.25 | 4 | 10 | 13 | 14 |
11 | 0 | 2.75 | 2 | 11 | 14 | 15 |
12 | 0 | 4 | 0 | 12 | 15 | 16 |
13 | 1.3 | 1.3 | 8 | 13 | 17 | 18 |
14 | 1.5 | 1.5 | 4 | 14 | 18 | 19 |
15 | 1.9 | 1.9 | 2 | 15 | 19 | 20 |
16 | 2.7 | 2.7 | 0 | 16 | 21 | 22 |
17 | 2 | 0 | 8 | 17 | 22 | 23 |
18 | 2.25 | 0 | 4 | 18 | 23 | 24 |
19 | 2.75 | 0 | 2 | 19 | 25 | 26 |
20 | 4 | 0 | 0 | 20 | 26 | 27 |
21 | 1.3 | -1.3 | 8 | 21 | 27 | 28 |
22 | 1.5 | -1.5 | 4 | 22 | 29 | 30 |
23 | 1.9 | -1.9 | 2 | 23 | 30 | 31 |
24 | 2.7 | -2.7 | 0 | 24 | 31 | 32 |
25 | 0 | -2 | 8 | 25 | 1 | 5 |
26 | 0 | -2.25 | 4 | 26 | 5 | 9 |
27 | 0 | -2.75 | 2 | 27 | 9 | 13 |
28 | 0 | -4 | 0 | 28 | 13 | 17 |
29 | -1.3 | -1.3 | 8 | 29 | 17 | 21 |
30 | -1.5 | -1.5 | 4 | 30 | 21 | 25 |
31 | -1.9 | -1.9 | 2 | 31 | 25 | 29 |
32 | -2.7 | -2.7 | 0 | 32 | 29 | 1 |
33 | 4 | 8 | ||||
34 | 8 | 12 | ||||
35 | 12 | 16 | ||||
36 | 16 | 20 | ||||
37 | 20 | 24 | ||||
38 | 24 | 28 | ||||
39 | 28 | 32 | ||||
40 | 32 | 4 |
Try the following views:
OBSERVER LOC. LOOKED AT ZOOM ------------- --------- ---- 45,45,45 0,0,4 2
OBSERVER LOC. LOOKED AT ZOOM ------------- --------- ---- 5,4,1 0,0,3 .2
Nick also asked if the 3-D views could be animated by showing a series of views in progression, Our next reader came up with a very nice program modification to do just that.
Larry L. Harris, of Poca, WV, has gone beyond the limitations of the original Solid States program, and has come up with a program modification that allows for automatic rotation of an object. Because of the memory requirements of this modification, 48K memory is suggested, and even then only fairly small objects can be rotated. Larry writes:
"This modification allows the viewer to rotate about the object in a circle on the X-Y plane with a Z coordinate the user inputs. The radius is determined by the input X and Y coordinates of the observer's viewpoint. The object appears to rotate on the screen. A two-page flip was added to give instant transition from one frame to the next. You do not see the object develop. It is drawn off-screen, then through a page flip you see the complete object. A machine-language routine is used to clear the GRAPHICS 8+16 screen.
"To add this feature to the existing Solid States program, simply add the lines in Listing 1. Some are changes to existing lines.
"The program runs like the original until the zoom factor has been entered. Respond Y to "DO YOU WANT TO DO AN X-Y LOOP." Then input the total number of degrees rotation and the number of degrees to increment for each drawing. Expect a screen flicker and some delay while initializing takes place and the first drawing is developed off-screen. Do not turn DMA off if you want to rotate around the object, or you won't see it.
"The program will also operate as originally designed. Just answer N to the above prompt."
135 ? "* ROTATION: LARRY HARRIS *"
160 DIM R$(1),A$(5),F$(20),DMA$(1),O$(
1),EG$(2),IN$(1):EG$=CHR$(27):EG$(2)=C
HR$(7)
434 ? :? "DO YOU WANT TO DO AN X-Y LOO
P";:INPUT R$:IF R$<>"Y" THEN 440
436 ? "HOW MANY DEG. TOTAL ROTATION";:
INPUT AN2:AN2=(AN2/360)*6.28
438 ? "HOW MANY DEG. INC. ROTATION";:I
NPUT AN3:AN3=(AN3/360)*6.28:GOSUB 2300
:REM SET UP PAGE FLIP
439 GOTO 2000
850 GOSUB 2200:SETCOLOR 2,0,0:COLOR 1:
TRAP OFF
1035 IF FLAG THEN 2100
1040 IF PEEK(53279)=7 AND STRIG(0)=1 T
HEN 1035
2000 FLAG=1:R=(OX^2+OY^2)^0.5:AN1=ATN(
OY/OX):AN2=AN2+AN1
2100 AN1=AN1+AN3:OX=R*COS(AN1):OY=R*SI
N(AN1)
2120 GOTO 440
2199 REM PAGE FLIP
2200 IF NOT FLAG THEN GRAPHICS 24:RET
URN
2201 IF AN1>AN2 THEN FLAG=0
2202 XI=XI+1-2*(XI=2):XA=2-(XI=2)
2205 FOR S=40 TO 0 STEP -10:SOUND 0,S,
10,8:NEXT S
2210 POKE DL+4,DLL(XA):POKE DL+5,DLH(X
A)
2220 POKE DL+100,DHL(XA):POKE DL+101,D
HH(XA)
2230 POKE 88,DLL(XI):POKE 89,DLH(XI)
2240 ADS=DLL(XI)+256*DLH(XI):Z=USR(153
6,ADS)
2250 RETURN
2299 REM SET UP DATA FOR PAGE FLIP
2300 TRAP 2500:DIM DLL(2),DLH(2),DHL(2
),DHH(2):X=0:RESTORE 2400
2310 READ DAT:IF DAT=-1 THEN 2330
2320 POKE 1536+X,DAT:X=X+1:GOTO 2310
2330 X=2:GOSUB 2350:X=1:POKE 106,PEEK(
106)-32:GOSUB 2350
2340 RETURN
2350 GRAPHICS 24:DLL(X)=PEEK(88):DLH(X
)=PEEK(89):DL=PEEK(560)+256*PEEK(561):
DHL(X)=PEEK(DL+100)
2360 DHH(X)=PEEK(DL+101):RETURN
2399 REM CLR DATA
2400 DATA 104,24,104,133,4,104,133,3,1
65,4,105,30,133,10,160,0,169,0,145,3,2
00,192,0,208,249,160,0
2410 DATA 230,4,165,4,197,10,208,237,9
6,-1
2500 TRAP OFF:GRAPHICS 24:RETURN
135 DATA 471,818,862,448,491,960,288,9
40,646,226,587,882,488,565,553,9225
2202 DATA 137,386,315,415,598,533,792,
859,512,109,526,736,794,614,58,7384
2399 DATA 298,832,508,534,2172
I'd like to thank all the readers who have sent in their 3-D image data. Special thanks goes to Larry L. Harris for his rotation modification. If you've created a 3-D object and haven't sent it in yet, what are you waiting for? Simply send it (on tape, disk or printout) to:
Solid States
When we get another good batch of objects. we'll run them in a future issue.