George, I'm sending you one of the students' program from the Conference. We all are eager to hear your opinion and suggestions. Also, we are very interested what logo lovers think about it. I'd like to remind, these students are just 14-15 years old and this work was done completely on their own. I've just observed how they worked, it was a real pleasure for me and I think, they are capable of doing serious projects. If there is something wrong with the zipped bmp-file, the line bitload press.bmp in moves.main could be removed without any loss. Thank you very much for giving us such good tools. All the best, Olga. PS I'm still not sure in our e-mail service. Would you please send me a "receipt" on getting this letter. The program and bmp-file are attached .
to colors windowcreate "move "colors [SETTING COLORS] 49 0 351 24 [] STATICCREATE "colors "RRR [RED=0] 75 1 25 10 STATICCREATE "colors "GGG [GREEN=0] 190 1 40 10 STATICCREATE "colors "BBB [BLUE=0] 310 1 40 10 SCROLLBARCREATE "colors "RED 1 1 70 10 ~ [setpc (list scrollbarget "RED scrollbarget "GREEN scrollbarget "BLUE) ~ staticdelete "RRR staticcreate "colors "RRR word "RED= scrollbarget "RED 75 1 40 10] ScrollBarCreate "colors "GREEN 115 1 70 10 ~ [setpc (list scrollbarget "RED scrollbarget "GREEN scrollbarget "BLUE) ~ staticdelete "GGG staticcreate "colors "GGG word "GREEN= scrollbarget "GREEN 190 1 40 10] ScrollBarCreate "colors "BLUE 235 1 70 10 ~ [setpc (list scrollbarget "RED scrollbarget "GREEN scrollbarget "BLUE) ~ staticdelete "BBB staticcreate "colors "BBB word "BLUE= scrollbarget "BLUE 310 1 40 10] scrollbarset "RED 0 255 0 scrollbarset "GREEN 0 255 0 scrollbarset "BLUE 0 255 0 end to dodraw make "l Text_Numb Comboboxgettext "LENG if equalp [CUBE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] repeat 4[repeat 4[fd :l rt 90]fd :l downpitch 90]] if equalp [SQUARE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] repeat 4 [fd :l rt 90]] if equalp [BALL_1] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] repeat 12 [repeat 360[fd int(2*3.14*:l/360) downpitch 1] rt 15] rt 180] if equalp [BALL_2] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] repeat 18 [repeat 360[fd int(2*3.14*:l/360) downpitch 1] rt 10] rt 180] if equalp [TRIANGLE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] TRIANGLE] if equalp [SIXANGLE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] repeat 6[fd :l rt 60]] if equalp [TUBE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] tube1] if equalp [RAN_TUBE] listboxgetselect "FFF ~ [If CheckBoxGet "CLS [cs] tube2] stat1 stat2 stat3 stat4 stat5 end to formes WINDOWCREATE "move "Formes [GETTING FORMES] 0 83 105 91 [] ButtonCreate "Formes "Doit [Do it!] 45 54 50 10 ~ [dodraw] Buttoncreate "Formes "Cans "Cancel 45 64 50 10 [windowdelete "Formes make "f 0] LISTBOXCREATE "Formes "FFF 1 1 40 78 LISTBOXADDSTRING "FFF "CUBE LISTBOXADDSTRING "FFF "SQUARE ListBoxAddString "FFF "BALL_1 ListBoxAddString "FFF "BALL_2 ListBoxAddString "FFF "TRIANGLE ListBoxAddString "FFF "SIXANGLE ListboxAddString "FFF "TUBE ListBoxAddString "FFF "RAN_TUBE GROUPBOXCREATE "Formes "GR1 55 32 30 20 CHECKBOXCREATE "Formes "GR1 "CLS "CS 61 39 20 10 ComboboxCreate "Formes "LENG 45 20 50 11 Local "i for [i 10 300 10][ComboBoxAddString "LENG :i] STATICCREATE "Formes "TTT [Choose the length or radius:] 45 1 55 19 end to func make "funcnumb selectbox [Choose the function][[z=x*x+y*y] [z=x*x-y*y] [z=x*y] [z=x*x*x+y*y*y] [z=x*x*x-y*y*y]] If :funcnumb = 1 [cs shap] If :funcnumb = 2 [cs shap2] If :funcnumb = 3 [cs nous] If :funcnumb = 4 [cs shap3] If :funcnumb = 5 [cs shap4] stat1 stat2 stat3 stat4 stat5 end to hi messagebox [Who is the sailor?][This program made by Shipov Andrej and Gregorjev Dmitry.] messagebox [List 1][This program can help you to learn 3D graphic.] messagebox [List 2][In this program you can use buttons in window MOVES: FD - Forward to 50 steps. BK - Back to 50 steps. LR - Left roll to 10 degrees. RR - Right roll to 10 degrees.] messagebox [List 3][UP - Up pitch to 10 degrees. DP - Down pitch to 10 degrees. LT - Left to 10 degrees. RT - Right to 10 degrees. PU/PD - Pen Up/Down. ? - Help.] messagebox [List 4] [CS - Clearn screen. Forms - Ready to run forms or graphics z=f(x,y).] messagebox [List 5][About Forms: Choose figure in the list and also length of side or radius, and also clearn or not the screen before.] messagebox [List 6][About graphics: Choose graphic in the list.] end to keyfunctions If keyboardvalue=32 [hi] if keyboardvalue=27 [bye] end To moves.main icon "commander keyboardon [keyfunctions] make "c 0 make "f 0 make "p 1 cs perspective setturtle -1 pu setxyz 500 500 500 setturtle 0 pd setpensize [2 2] ;bitload "pres.bmp windowcreate "MSWLogoScreen "move "MOVES 49 24 57 59 [] buttoncreate "move "Left "LT 1 1 12 10 [lt 10 stat1] buttoncreate "move "Right "RT 1 12 12 10 [rt 10 stat1] buttoncreate "move "UPitvh "UP 14 1 12 10 [uppitch 10 stat3] buttoncreate "move "DPitch "DP 14 12 12 10 [downpitch 10 stat3] buttoncreate "move "LTRoll "LR 27 1 12 10 [leftroll 10 stat2] buttoncreate "move "RTRoll "RR 27 12 12 10 [rightroll 10 stat2] buttoncreate "move "FD "FD 40 1 12 10 [fd 50 stat4] buttoncreate "move "BK "BK 40 12 12 10 [bk 50 stat4] buttoncreate "move "Pu "PU/PD 14 23 25 10 [ifelse :p=1[pu make "p 0][pd make "p 1] stat5] buttoncreate "move "CS "CS 1 23 12 10 [cs pu home pd stat1 stat2 stat3 stat4] buttoncreate "move "Forms "Forms 1 34 25 10 [preforms] buttoncreate "move "Exit "Exit 27 34 25 10 [windowdelete "move cs pu home pd unicon "commander bye] buttoncreate "move "Hi "? 40 23 12 10 [hi] colors windowcreate "move "Static "STATUS 0 0 49 83 [] staticcreate "Static "Heard [Heading=0] 1 1 60 10 staticcreate "Static "Rollic [Roll=0] 1 11 60 10 staticcreate "Static "Pitches [Pitch=0] 1 22 60 10 staticcreate "Static "Xs [x=0] 1 33 60 10 staticcreate "Static "Ys [y=0] 1 44 60 10 staticcreate "Static "Zs [z=0] 1 55 60 10 staticcreate "Static "PPP [PD] 25 44 10 10 end to newnew pu local "x local "y for [x -100 100 10][for [y -100 100 10][setposxyz (list :x :y (:x*:x*:y+:y*:y*:x)/1000) pd]pu] for [y -100 100 10][for [x -100 100 10][setposxyz (list :x :y (:x*:x*:y+:y*:y*:x)/1000) pd]pu] pu home end to newnew2 pu local "x local "y for [x -100 100 10][for [y -100 100 10][setposxyz (list :x :y (:x*:x*:y-:y*:y*:x)/1000) pd]pu] for [y -100 100 10][for [x -100 100 10][setposxyz (list :x :y (:x*:x*:y-:y*:y*:x)/1000) pd]pu] pu home end to nous local "x local "y pu for [x -1 1 0.1][for[y -1 1 0.1][setposxyz(list :x*100 :y*100 :x*:y*200) pd]pu] for [y -1 1 0.1][for[x -1 1 0.1][setposxyz(list :x*100 :y*100 :x*:y*200) pd]pu] pu home end to preforms make "fs yesnobox [Ready to run Forms or Graphics.] [Yes - Forms, No - Functions] Ifelse :fs [if :f=0[formes make "f 1]][func] end to resizemain ; Note DLLs are not always called .DLL dllload "user.exe ; Get Window Handle to Main Window make "hwnd dllcall [w FindWindow l 0 s [MswLogo Screen]] ; Now Resize it make "status dllcall (list "w "MoveWindow "w :hwnd "w "-4 "w "-4 "w "808 "w "608 "w "1) dllfree icon "commander end to shap pu local "x local "y for [x -1 1 0.1][for [y -1 1 0.1][setposxyz (list :x*100 :y*100 (:x*:x+:y*:y)*100) pd]pu] for [y -1 1 0.1][for [x -1 1 0.1][setposxyz (list :x*100 :y*100 (:x*:x+:y*:y)*100) pd]pu] pu home end to shap2 pu local "x local "y for [x -1 1 0.1][for [y -1 1 0.1][setposxyz (list :x*100 :y*100 (:x*:x-:y*:y)*100) pd]pu] for [y -1 1 0.1][for [x -1 1 0.1][setposxyz (list :x*100 :y*100 (:x*:x-:y*:y)*100) pd]pu] pu home end to shap3 pu local "x local "y for [x -100 100 10][for [y -100 100 10]~ [setposxyz (list :x :y (:x*:x*:x+:y*:y*:y)/4000) pd]pu] for [y -100 100 10][for [x -100 100 10]~ [setposxyz (list :x :y (:x*:x*:x+:y*:y*:y)/4000) pd]pu] pu home end to shap4 pu local "x local "y for [x -100 100 10][for [y -100 100 10][setposxyz (list :x :y (:x*:x*:x-:y*:y*:y)/4000) pd]pu] for [y -100 100 10][for [x -100 100 10]~ [setposxyz (list :x :y (:x*:x*:x-:y*:y*:y)/4000) pd]pu] pu home end to sqr :wh :col make "prom :wh ifelse :col = 0[make "prom 1][~ repeat round(:col - 1)[make "prom :prom * :wh]] op :prom end to stat1 staticdelete "Heard staticcreate "Static "Heard word "Heading= round heading 1 1 60 10 end to stat2 staticdelete "Rollic staticcreate "Static "Rollic word "Roll= round roll 1 11 60 10 end to stat3 staticdelete "Pitches staticcreate "Static "Pitches word "Pitch= round pitch 1 22 60 10 end to stat4 staticdelete "Xs staticdelete "Ys staticdelete "Zs staticcreate "Static "Xs word "x= round xcor 1 33 60 10 staticcreate "Static "Ys word "y= round ycor 1 44 60 10 staticcreate "Static "Zs word "z= round zcor 1 55 60 10 end to stat5 Staticdelete "PPP If :p=1 [staticcreate "Static "PPP [PD] 25 44 10 10] If :p=0 [staticcreate "Static "PPP [PU] 25 44 10 10] end to Text_Numb :text make "col 0 if listp :text[make "text first :text] repeat count :text[ make "t_numb last :text if :t_numb = "0[make "num 0] if :t_numb = "1[make "num 1] if :t_numb = "2[make "num 2] if :t_numb = "3[make "num 3] if :t_numb = "4[make "num 4] if :t_numb = "5[make "num 5] if :t_numb = "6[make "num 6] if :t_numb = "7[make "num 7] if :t_numb = "8[make "num 8] if :t_numb = "9[make "num 9] make "col :col + :num * sqr 10 (repcount - 1) make "text bl :text] op :col end to TRIANGLE Repeat 3[fd :l rt 150 uppitch 55 fd :l bk :l downpitch 55 lt 30] end to tube1 pu rt 45 bk 2*:l lt 45 downpitch 90 bk 150 uppitch 90 setpc [0 0 0] repeat 255[ repeat 4[fd :l lt 45 fd :l rt 135 fd 2*:l lt 135 fd :l rt 45 fd :l rt 90] setpc (list repcount repcount repcount) pu downpitch 90 fd 1 uppitch 90 pd] repeat 255[ repeat 4[fd :l lt 45 fd :l rt 135 fd 2*:l lt 135 fd :l rt 45 fd :l rt 90] setpc (list 256-repcount 256-repcount 256-repcount) pu downpitch 90 fd 1 uppitch 90 pd] end to tube2 pu rt 45 bk 2*:l lt 45 setpc [0 0 0] repeat 255[ repeat 4[fd :l lt 45 fd :l rt 135 fd 2*:l lt 135 fd :l rt 45 fd :l rt 90] setpc (list random(256) random(256) random(256)) pu downpitch 90 fd 3 uppitch 90 pd] end Make "0 "col Make "1 "text Make "4 "t_numb Make "c 0 Make "col 20 Make "f 1 Make "for.final 100 Make "for.initial -83 Make "for.instr [make "y 100 * (cos(:x) + cos(:z)) setposxyz (list :x :y :z)] Make "for.step 1 Make "for.tester [:for.initial > :for.final] Make "for.values [z -100 100 1] Make "for.var "z Make "fs "true Make "funcnumb 2 Make "hwnd [20900] Make "l 20 Make "num 2 Make "p 1 Make "prom 10 Make "startup [resizemain hi moves.main] Make "status [1] Make "t_numb 2 Make "x -100 Make "y -17.066269592348 Make "z -100
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: bmp.zip
Date: 14 Apr 1998, 18:30
Size: 2676 bytes.
Type: ZIP-archive
Global SchoolNet Foundation -
Linking Kids Around the World!
Copyright GSN - All Rights Reserved
- Comments
& Questions
Visit GSN's
Global
Schoolhouse for more exciting learning resources!
Search our Site
-
Home