[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

LOGO-L> Re: Students Logo Conference in SPb



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

bmp.zip



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