Son of Solid States

by Tom Hudson and ANALOG Readers


Okay, Solid States fans, hang onto your hats! This issue, we've got program modifications and 3-D objects galore from yours truly and ANALOG readers around the world. Let's get started, shall we?

Far out!

Our first object was sent in by Vinette DePhillipe, of Hampton, Virginia. It's called an "adjustable stop" and reminds me of my days back in good ol' Glendale High School. My general drafting teacher, Ernie Belden (and heaven help you if you ever called him Ernie), was always coming up with weird objects for us to draw, and we never could figure out what they were used for. Here is the data for the adjustable stop (ADJSTOP.DAT is available in ATASCII format):

Points: 58 Lines: 88
PointXYZ LineFromTo LineFromTo
1-13-12-9 112 594445
2-13-12-5 223 604546
3-13-14-5 334 614647
4-13-144 445 624748
5-13-124 556 634849
6-13-128 667 644950
713-128 778 655051
813-124 889 665152
913-144 9910 675253
1013-14-5 101011 685354
1113-12-5 111112 695554
1213-12-9 12121 705556
13-13-3-9 13211 715657
141-3-9 14310 725758
15-1-7-9 1549 735843
168-7-9 1658 742844
176-3-9 1767 752945
1813-3-9 18113 763046
19-18.254 191314 773147
2088.254 201415 783248
216102 211516 793349
221102 221617 803450
23-13102 231718 813551
24-1358 241812 823652
251358 251519 833753
2613102 261920 843854
27-6-4-9 272021 853955
28-4.86-4.23-9 282117 864056
29-3.88-4.88-9 292016 874157
30-3.23-5.86-9 301422 884258
31-3-7-9 311922
32-3.23-8.14-9 321323
33-3.88-9.12-9 332324
34-4.86-9.77-9 342425
35-6-10-9 352526
36-7.14-9.77-9 362618
37-8.12-9.12-9 372621
38-8.77-8.14-9 382322
39-9-7-9 39246
40-8.77-5.86-9 40257
41-8.12-4.88-9 412728
42-7.14-4.23-9 422829
43-6-48 432930
44-4.86-4.238 443031
45-3.88-4.888 453132
46-3.23-5.868 463233
47-3-78 473334
48-3.23-8.148 483435
49-3.88-9.128 493536
50-4.86-9.778 503637
51-6-108 513738
52-7.14-9.778 523839
53-8.12-9.128 533940
54-8.77-8.148 544041
55-9-78 554142
56-8.77-5.868 564227
57-8.12-4.888 572743
58-7.14-4.238 584344
[Adjustable stop screen shot]
ADJUSTABLE STOP VIEW DATA:

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
  60,-60,40       0,0,0       1

This got me thinking about orthographic projection (the drawing of an object from three views without perspective) and how Solid States can simulate the process.

Solid States draws objects with true perspective. The closer you get to an object, the more exaggerated the perspective becomes. Theoretically, if you could look at an object from an infinite distance through a large telescope, you would see the object without the perspective distortion.

We can produce orthographic views with Solid States by placing our viewpoint very far from the object and using a large ZOOM factor. The orthographic views of the adjustable stop are shown below, along with the coordinate and ZOOM information.

[Adjustable stop screen shot]
TOP VIEW

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
  0,0,12000       0,0,0      132
[Adjustable stop screen shot]
FRONT VIEW

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
  0,12000,0       0,0,0      132
[Adjustable stop screen shot]
SIDE VIEW

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
  12000,0,0       0,0,0      132

Conversely, if we place our viewpoint very close to the object and use a very small ZOOM factor, we will see the object severely distorted by perspective. Try the following view with the adjustable stop, and you'll see what I mean.

ADJ STOP EXAGGERATED PERSPECTIVE

OBSERVER LOC.  LOOKED AT   ZOOM
-------------  ---------   ----
   15,0,0        0,0,0      .04

Those readers interested in mechanical drawing applications of Solid States should find this information very useful. Mr. Belden would be proud.

TIE one on

Robert Ashcraft of Amarillo, Texas, sent in the data for a TIE fighter, the famous Imperial draft from the Star Wars movies.

Here's the data for the TIE fighter (TIEFIGHT.DAT is available in ATASCII format):

Points: 84 Lines: 138
PointXYZ LineFromTo LineFromTo
15-26 112 855152
2526 223 865249
3540 334 874549
452-6 445 884650
55-2-6 556 894751
65-40 661 904852
7-5-26 714 915354
8-526 825 925455
9-540 936 935556
10-52-6 1078 945653
11-5-2-6 1189 955758
12-5-40 12910 965859
13-1-21 131011 975960
141-21 141112 986057
151-2-1 15127 995357
16-1-2-1 16710 1005458
17-112 17811 1015559
18112 18912 1025660
191-12 191320 1036162
20-1-12 202017 1046263
21-12-1 211724 1056364
2212-1 222421 1066461
23121 232128 1076566
24-121 242825 1086667
25-1-1-2 252516 1096768
261-1-2 261613 1106865
2711-2 271419 1116165
28-11-2 281918 1126266
29-211 291823 1136367
30-2-11 302322 1146468
31-2-1-1 312227 1156970
32-21-1 322726 1167071
3321-1 332615 1177172
342-1-1 341514 1187269
352-11 351314 1197374
36211 361435 1207475
37201 373536 1217576
38210 383623 1227673
3920-1 392324 1236973
402-10 402429 1247074
41301 412930 1257175
42310 423013 1267276
4330-1 431615 1277778
443-10 441534 1287879
45-201 453433 1297980
46-210 463322 1308077
47-20-1 472221 1318182
48-2-10 482132 1328283
49-301 493231 1338384
50-310 503116 1348481
51-30-1 511718 1357781
52-3-10 521836 1367882
53300.67 533633 1377983
5430.670 543327 1388084
5530-0.67 552728
563-0.670 562832
57400.67 573229
5840.670 582917
5940-0.67 592019
604-0.670 601935
61-300.67 613534
62-30.670 623426
63-30-0.67 632625
64-3-0.670 642531
65-400.67 653130
66-40.670 663020
67-40-0.67 673738
68-4-0.670 683839
69400.33 693940
7040.330 704037
7140-0.33 714142
724-0.330 724243
73500.33 734344
7450.330 744441
7550-0.33 753741
765-0.330 763842
77-400.33 773943
78-40-0.33 784044
79-40-0.33 794546
80-4-0.330 804647
81-500.33 814748
82-50.330 824845
83-50-0.33 834950
84-5-0.330 845051
[TIE fighter screen shot]
TIE FIGHTER VIEW DATA:

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
 100,173,50       0,0,0       6

Interestingly, a few days after receiving the TIE fighter, I got a letter from Jason Leigh, of Kowloon, Hong Kong. He sent in -- you guessed it -- a 3-D X-Wing fighter, the spacecraft used by the rebel forces in the Star Wars films!

Here's the X-Wing data (XWING.DAT is available in ATASCII format):

Points: 94 Lines: 161
PointXYZ LineFromTo LineFromTo
102611 1151 9523
202211 2252 9634
372112 3353 9741
472712 4454 985152
572611 5555 995253
672211 6656 1005354
7372813 7757 1015451
8373213 8858 10256
9403213 9910 103644
10404312 101059 1044426
11404412 111160 1052625
12224411 121261 106257
13224611 131362 10775
14404612 141463 1085556
15404712 151564 1095692
16464712 161665 1109275
17464312 171766 1117574
18503213 181867 1127457
19553111 191968 1135755
20553212 202069 1142518
21603212 212170 115188
22602812 222271 11687
23552812 232372 117725
24552911 242473 1187467
25502813 252574 1196758
26502013 262675 1205857
27551911 272776 1215774
28552012 282877 1224443
29602012 292978 1234333
30601612 303079 1243326
31551612 313180 1252644
32551711 323281 1269291
33501613 333382 1278275
3446512 343483 1287592
3546112 353584 1291819
3640112 363685 1301920
3740212 373786 1312021
3822211 383887 1322122
3922411 393988 1332223
4040412 404089 1342324
4140512 414190 1352425
42401613 424241 1362518
43371613 434391 1376768
44372013 444492 1386869
45242312 451017 1396970
46242512 461718 1407071
47332615 473334 1417172
48332215 483441 1427273
49362513 491213 1437374
50362313 501314 1447467
510269 511411 1452633
520229 521112 1463332
537218 536162 1473231
547278 546263 1483130
557269 556360 1493029
567229 566061 1502928
5737286 571015 1512827
5837326 581516 1522726
5940438 591617 1537582
6040448 601710 1548281
6122449 615964 1558180
6222469 626465 1568079
6340468 636566 1577978
6440478 646659 1587877
6546478 653839 1597776
6646438 663940 1607675
6750326 674037 1619182
6855319 683738
6955328 698788
7060328 708889
7160288 718986
7255288 728687
7355299 734134
7450286 743435
7550206 753536
7655199 763641
7755208 779083
7860208 788384
7960168 798485
8055168 808590
8155179 814645
8250166 824647
834658 834749
844618 844950
854018 855048
864028 864845
872229 874594
882249 889450
894048 894693
904058 909349
9137166 914748
9237206 924793
93332613 934894
94332213 9412
[X-Wing screen shot]
X-WING VIEW DATA:

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
   0,0,100       30,25,5     .7

Now you can stage your own space battles using Solid States and your Atari computer!

Atari self-portrait

Our last object this time out is an Atari 800 computer, generated by Robert Groves, of Columbus, Ohio. This graphic has a great deal of detail, and I cringe just thinking of all the time Robert must have spent getting it right.

Here's the data for the Atari 800 (ATARI800.DAT is available in ATASCII format):

Points: 112 Lines: 122
PointXYZ LineFromTo LineFromTo
1431.5 112 113107108
24-30 223 11477105
3-4-30 334 115761
4-431.5 441 1161064
5-331.5 556 117107110
6-301.5 667 118101102
7-3.6-0.50.9 778 119103102
8-3.8-2.80.3 889 120399
93.8-2.80.3 9910 12192
103.6-0.50.9 101011 122702
11301.5 111112
12331.5 1266
132.831.5 13611
142.811.5 14710
152.801.5 151315
16-2.801.5 161618
17-2.811.5 171417
18-2.831.5 181920
19-2.8-0.50.9 192122
20-0.6-0.50.9 202325
210.6-0.50.9 212527
222.8-0.50.9 228089
230.6-0.41 232426
24-0.6-0.41 242628
250.6-0.40.8 252728
26-0.6-0.40.8 262423
270.6-0.60.8 272930
28-0.6-0.60.8 283132
29-3-0.81 293135
302-0.81 303536
312.7-0.81 313632
323.2-0.81 323034
33-3-11 333334
342-11 343329
352.7-11 353738
363.2-11 363842
37-3-1.10.9 374241
382-1.10.9 384137
392.7-1.10.9 393940
403.2-1.10.9 404044
41-3-1.30.9 414443
422-1.30.9 424339
432.7-1.30.9 434546
443.2-1.30.9 444748
45-2.8-1.40.8 454849
461.8-1.40.8 464950
472.7-1.40.8 475047
483.2-1.40.8 484651
493.2-1.60.8 495152
502.7-1.60.8 505245
511.8-1.60.8 515354
52-2.8-1.60.8 525556
53-2.8-1.70.7 535657
541.8-1.70.7 545758
552.7-1.70.7 555855
563.2-1.70.7 565954
573.2-1.90.7 575960
582.7-1.90.7 586053
591.8-1.90.7 596162
60-2.8-1.90.7 606364
61-2.4-20.6 616465
621.4-20.6 626566
632.7-20.5 636663
643.2-20.5 646267
653.2-2.20.5 656768
662.7-2.20.5 666861
671.4-2.20.6 677376
68-2.4-2.20.6 687172
69000 697274
704-0.80 707475
714-0.80.2 717571
7242.70.2 727782
7342.70 7338
743.92.7-0.2 748486
753.9-0.8-0.2 758081
76430 767983
773.93-0.3 778485
783.93-0.7 788583
793.6-0.4-0.7 798479
803.2-2-0.7 807980
813.6-2.5-0.3 8185104
823.9-2.8-0.3 828292
833.9-0.4-0.3 839697
842.3-0.4-0.7 849781
852.3-0.4-0.3 859792
862.33-0.7 869287
871.7-2.7-0.7 879293
88-1.7-2.7-0.7 889394
89-3.2-2-0.7 899491
90-3.6-2.5-0.3 909188
91-2-2.8-0.3 918887
922-2.8-0.3 928895
932-2.7-0.1 939598
94-2-2.7-0.1 949891
95-1.7-2.15-0.7 959199
961.7-2.15-0.7 969089
971.7-2.5-0.3 979098
98-1.7-2.5-0.3 988796
99-3.9-2.8-0.3 993106
100-2-2.7-0.3 100106105
101-2-2.7-0.1 101107108
1022-2.7-0.1 102282
1032-2.7-0.3 103108109
1042.33-0.3 104109110
105-3.93-0.3 105110112
106-430 106112111
107-2.33-0.3 107111109
108-2.33-0.7 10811189
109-2.3-0.4-0.7 10999105
110-2.3-0.4-0.3 1107776
111-3.6-0.4-0.7 11110486
112-3.9-0.4-0.3 11286108
[Atari 800 screen shot]
800 VIEW DATA:

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
 -12,-12,12       0,0,0       1
[Atari 800 screen shot]
800 TOP VIEW DATA:

OBSERVER LOC.   LOOKED AT   ZOOM
-------------   ---------   ----
  0,0,1500        0,0,0      100

Well, that just about does it for 3-D images this month. We received several others, some of which were just too large to print. If you've got a 3-D object you'd like to send, try to keep it under 250 points and lines total.

No more boo-boos

Vinette DePhillipe and Ted Talay, of Hampton, Virginia, submitted this short program modification which traps errors in the initial data entry process. This eliminates the annoyance of having to re-enter a whole object's data when an entry error is made.

SSMOD1.LST is available in ATASCII format.

270 FOR I=1 TO PS:? "POINT ";I
272 TRAP 272:INPUT Q1,Q2,Q3
274 X(I)=Q1:Y(I)=Q2:Z(I)=Q3:NEXT I
310 FOR I=1 TO LS:? :? "LINE ";I
312 ? "FROM POINT";:TRAP 312:INPUT Q1:
LN(I,0)=Q1
314 ? "  TO POINT";:TRAP 314:INPUT Q1:
LN(I,1)=Q1
316 NEXT I

Here's a quick modification I wrote to give Solid States users with the 1020 Plotter larger plots. It turns the output sideways, giving 6.25 x 3.75 inch plots. No special action is needed.

SSMOD2.LST is available in ATASCII format.

210 TRAP 190:CLOSE #3:OPEN #3,8,0,"P":
? #3;EG$;"*H*I*M0,-820*I":PC=0
860 IF O$="Y" THEN ? #3;"M0,0*D480,0*D
480,800*D0,800*D0,0"
1000 ? #3;"M";(191-Y1)*2.5;",";(319-X1
)*2.5;"*D";(191-YW)*2.5;",";(319-XW)*2
.5:PC=PC+1
1020 IF PC>0 THEN ? #3;"H*M0,-820*I":P
C=0

Printer output!

I've received quite a few letters from readers wanting hard-copy output on their Epson, Gemini 1OX and C.Itoh printers. You asked for it, and you've got it!

Here's the code for Epson-compatible printers (such as Gemini 1OX):

SSMOD3.LST is available in ATASCII format.

This BASIC listing uses an image to display special characters

And here's the code for C.Itoh printers:

SSMOD4.LST is available in ATASCII format.

This BASIC listing uses an image to display special characters

After Solid States has completed the picture on the screen, you'll hear a short tone. Pressing OPTION will print the screen on your printer (the process takes about 2.5 minutes). It's as easy as that! If you don't want to print the screen, pressing START will return you to the coordinate entry point, just like the original version of the program.

If your printer isn't ready, the program will go back and wait for the START or OPTION keys again. Simply ready your printer and press OPTION to print the screen.

Remember, your printer must be equipped with graphics ability in order for the screen-print function to work.

Supply and demand

As long as I receive your 3-D object data and suggestions for modifications, we'll be running Solid States updates like this indefinitely.

One thing I'd like to do is equip Solid States with hidden-line removal, so the drawings won't be cluttered with lines that should be invisible. If you know of a good hidden-line removal algorithm, please let me know. I'm checking my resources, but, so far, I haven't found anything specific on the process. If you want to see your name in lights (well, at least, in the pages of ANALOG), send me anything you can find!

I'm also working on converting Solid States to a 100% machine language program for much faster operation. I'm going to wait until I find a hidden-line algorithm before I do this, though.

Keep those 3-D objects coming! Send them to:

Solid States
c/o ANALOG Computing
P.O. Box 23
Worcester, MA 01603

If you don't have the Solid States program, ANALOG issue 16 is still available as a back issue. See the ad elsewhere in this issue.


Previous | Contents | Next

Original text copyright 1984 by ANALOG Computing. Reprinted with permission by the Digital ANALOG Archive.