BBS: Inland Empire Archive Date: 03-21-93 (03:41) Number: 352 From: RICH GELDREICH Refer#: NONE To: ALL Recvd: NO Subj: Solid5 2/8 Conf: (2) Quik_Bas
'Page 2 of SOLID5.BAS begins here. PRINT "Right....................Angle 1 +" PRINT "Up.......................Angle 2 -" PRINT "Down.....................Angle 2 +" PRINT "-........................Angle 3 -" PRINT "+........................Angle 3 +" PRINT "5........................Rotation Stop" PRINT "0........................Rotation Reset" PRINT "Up Arrow.................Forward" PRINT "Down Arrow...............Backward" PRINT "Left Arrow...............Left" PRINT "Right Arrow..............Right" PRINT : PRINT "Initializing..." MaxPoints = 4 'Pyramid. 'Points follow... DATA -100,0,100, -100,0,-100, 100,0,-100, 100,0,100, 0,-290,0 MaxPolys = 5 'Polygons follow (they must be specified in counterclockwise 'order for correct hidden face removal and shading) DATA 4,0,3, 4,3,2, 4,1,0, 4,2,1, 3,0,1, 3,1,2 MaxLines = 7 'Lines follow for shadow computation... DATA 4,0, 4,1, 4,2, 4,3, 0,1, 1,2, 2,3, 3,0 'MaxPoints = 7 'Cube. 'DATA -100,100,100 'DATA 100,100,100 'DATA 100,100,-100 'DATA -100,100,-100 'DATA -100,-100,100 'DATA 100,-100,100 'DATA 100,-100,-100 'DATA -100,-100,-100 'MaxPolys = 11 'DATA 5,4,0, 5,0,1 'DATA 6,2,3, 3,7,6 'DATA 6,5,1, 6,1,2 'DATA 7,0,4, 7,3,0 'DATA 6,7,4, 6,4,5 'DATA 0,3,2, 1,0,2 'MaxLines = 11 'DATA 0,1, 1,2, 2,3, 3,0 'DATA 4,5, 5,6, 6,7, 7,4 'DATA 4,0, 5,1, 6,2, 7,3 'MaxPoints = 15 'Wierd pencil-like shape... 'DATA 0,0,0, 250,0,0, 400,40,0, 400,60,0, 250,100,0, 0,100,0, _ -20,90,0, -20,10,0 'DATA 0,0,-50, 250,0,-50, 400,40,-50, 400,60,-50, 250,100,-50, _ 0,100,-50, -20,90,-50, -20,10,-50 'MaxPolys = 27 'DATA 1,0,7, 1,7,2, 2,7,6, 2,6,3, 3,6,4, 4,6,5 'DATA 9,15,8, 9,10,15, 10,14,15, 10,11,14, 11,13,14, 11,12,13 'DATA 8,7,0, 8,15,7, 8,0,1, 9,8,1, 9,1,2, 10,9,2, 10,2,3, 11,10,3 'DATA 12,11,4, 11,3,4, 4,5,13, 4,13,12 'DATA 5,6,14, 5,14,13, 14,6,7, 14,7,15 'MaxLines = 23 'DATA 0,1, 1,2, 2,3, 3,4, 4,5, 5,6, 6,7, 7,0 'DATA 8,9, 9,10, 10,11, 11,12, 12,13, 13,14, 14,15, 15,0 'DATA 0,8, 1,9, 2,10, 3,11, 4,12, 5,13, 6,14, 7,15 FOR a = 0 TO MaxPoints READ Points(a).XObject, Points(a).YObject, Points(a).ZObject X = X + Points(a).XObject: Y = Y + Points(a).YObject: Z = Z + _ Points(a).ZObject NEXT 'Center the object X = X \ (MaxPoints + 1): Y = Y \ (MaxPoints + 1): Z = Z \ (MaxPoints + _ 1) FOR a = 0 TO MaxPoints Points(a).XObject = Points(a).XObject - X Points(a).YObject = Points(a).YObject - Y Points(a).ZObject = Points(a).ZObject - Z NEXT FOR a = 0 TO MaxPolys READ Polys(a).P1, Polys(a).P2, Polys(a).P3 NEXT FOR a = 0 TO MaxLines READ lines(a).P1, lines(a).P2 NEXT 'Precalculate the normal point of each polygon for fast Lambert shading FindNormals 'Precalculate the sine table a = 0 FOR a! = 0 TO (359 + 90) / 57.29 STEP 1 / 57.29 SineTable(a) = SIN(a!) * 1024: a = a + 1 NEXT 'Some light source configurations won't work that great! l1 = 70: l2 = 40 'light source's spherical coordinates a1! = l1 / 57.29: a2! = l2 / 57.29 'Continued on page 3 --- MsgToss 2.0b * Origin: Computer Co-Op - Voorhees, NJ | Ted Hare (1:266/29)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET