Professional Documents
Culture Documents
VIOLET SCRIPT
VIOLET Group
H NI, 5/2004
-2-
VIOLET Group
MC LC
1. Tng quan..............................................................................................................................4
1.1. Gii thiu s lc...........................................................................................................4
1.2. Cc c im chnh ca ngn ng..................................................................................4
1.2.1. Ngn ng m phng...............................................................................................4
1.2.2. La chn ch chy song song hoc tun t.......................................................4
1.2.3. Kh nng s dng cc th vin m........................................................................5
1.2.4. So snh ngn ng VS vi Timeline........................................................................5
1.3. S dng Violet Script trong Violet.................................................................................6
1.4. Cu trc ngn ng..........................................................................................................7
1.4.1. Chng trnh vit bng VS.....................................................................................7
1.4.2. Cc lnh n gin...................................................................................................8
1.4.3. Cc biu thc..........................................................................................................8
1.4.4. Cc lnh c cu trc...............................................................................................8
1.4.5. Cc nhn.................................................................................................................8
2. VS trong m phng Hnh hc................................................................................................9
2.1. Kh nng ca ngn ng..................................................................................................9
2.2. Cc ng dng..................................................................................................................9
2.3. V d...............................................................................................................................9
3. Cc lnh trong VS...............................................................................................................12
3.1. Cc lnh x l i tng..............................................................................................12
3.2. Cc lnh x l a gic..................................................................................................14
3.3. Cc lnh ha............................................................................................................15
3.4. Cc lnh phc v tnh ton trong hnh hc phng........................................................16
3.5. Cc lnh ch i...........................................................................................................16
3.6. Cc lnh phc v x l tng tc.................................................................................17
3.7. Cc lnh iu khin h thng.......................................................................................17
3.8. Cc lnh trong th vin Hnh hc.................................................................................17
4. Cc bi ton mu.................................................................................................................18
4.1. Gii thiu......................................................................................................................18
4.2. V th hm s...........................................................................................................18
4.3. Bi ton qu tch...........................................................................................................19
4.4. Tam gic Napoleon.......................................................................................................20
4.5. Dng tam gic bit 3 cnh............................................................................................22
4.6. M phng con lc l xo................................................................................................23
-3-
VIOLET Group
1. Tng quan
1.1. Gii thiu s lc
Violet Script (VS) l ngn ng lp trnh chuyn dng v ha, c bit trong vic
to ra cc hot ng m phng. Ngn ng ny c th c s dng rt hiu qu xy dng
cc phn mm multimedia h tr dy hc. Vi cu trc n gin nhng y v cht ch,
VS s gip ngi dng c th d dng m t cc tng ca mnh, hoc c th sa i mt
sn phm c sn cho ph hp kch bn ca mnh.
Khc vi mt phn mm cng c, vic s dng ngn ng lp trnh c tnh m cao
hn, n cho php ngi dng khng phi ch l s dng cc mu m phng c sn m cn c
th t to ra cc mu mi, hoc sa i c nhng mu c mt cch ty (sa cc tham
s, ni dung v trnh t th hin, v.v...). Nh vy, kh nng p ng yu cu ngi dng ca
mt ngn ng lp trnh l cao hn rt nhiu so vi mt phn mm cng c.
VS c xy dng da trn ngn ng Action Script 2.0 ca Macromedia Flash, chnh
v vy, VS rt mnh trong vic thc hin cc m phng c chuyn ng v tng tc, c x
l m thanh v hnh nh. Tt nhin, vic lp trnh bng VS th n gin hn nhiu so vi lp
trnh bng Action Script.
Cc file m ngun ca VS u c th s dng c m vn bn Unicode hoc
Unicode UTF-8. Chnh v vy, khng ch c cc d liu, li gii thch m k c tn cc i
tng (tn bin, tn nhn, tn lnh, tn hm) u c th dng c bng ting Vit c du,
gip ngi dng Vit Nam d tip cn hn nhiu so vi mt ngn ng bng ting Anh.
-4-
VIOLET Group
-5-
VIOLET Group
-6-
VIOLET Group
Trong :
Khung pha trn cho php nhp cc file m ngun VS t file text bn ngoi. Thng
thng, Violet s cung cp sn mt s file th vin cc thao tc chun c th s dng
c lun.
Ta cng c th vit m ngun VS cho m phng ca mnh ra file text bn ngoi, ri
nhp vo y, m khng cn phi vit g trong phn son tho m ngun trc . Cch
lm ny hay hn (v nn dng), v son tho file text bn ngoi s d dng hn l son trc
tip trong Violet. Nh trong hnh trn ta thy phn chng trnh v ng phn gic s nm
trong file Vephangiac.vs ch khng phi nm trong phn son tho Script ca Violet.
Khung pha di cho php nhp cc i tng hnh nh s c s dng trong phn
mm. Cc i tng ny c th ly t file SWF hoc file JPG. Tuy nhin, ch c file SWF
(lm bng Flash) th mi c th chnh c v tr no trn nh l v tr (0, 0). V d vi mt
nh chic bt ch, ta cn chnh sao cho ch u bt ch ch ng vo v tr (0, 0) trong Flash.
Khi , nu ta dch chuyn i tng bt ch ti v tr (x, y) th u bt ch s ch ng vo v
tr (x, y) . Cn nu s dng nh JPG, th v tr gc trn bn tri ca nh s ng vo v tr
(x, y) ch khng phi ch u bt ch.
Sau khi nhp xong chng trnh, cc file m ngun chun v cc file nh, ta nhn nt
"ng ". sa i m ngun hay cc thng tin khc, ta click p vo bt k i tng
no trong hot cnh m phng.
Trong tn chng trnh con khng c du cch (c th dng du gch chn "_"
thay cho du cch). Cc tham s th phi khai bo cch nhau bi du phy. C th xem thm
cc v d minh ha trong cc phn sau.
Nu chng trnh con tr v cc gi tr cho cc tham s th khi gi ta nn thm du &
vo pha trc tham s (ging c php ca ngn ng C). V d:
input_line
get_point
-7-
VIOLET Group
Cc ton t: + , - , * , / , ^
Cc hm s: sin, cos, tg, cotg, arcsin, arccos, arctg, arccotg, abs, sqrt, ln
2
3
4
arccos((lenAB^2 + lenBC^2 - lenAC^2)/(2*lenAB*lenBC))
Lnh lp
for <tn bin> from <cn di> to <cn trn> step <bc nhy>
<cc lnh>
next
1.4.5. Cc nhn
C th coi nhn l cc lnh c bit, c k hiu bi du ":" v tn nhn. Nhn dng
va nh du, va m t cc on lnh. Nhn thng c dng nh mt nh danh
c th truy cp (goto) n on lnh t bt k v tr no trong chng trnh.
V d:
function main
goto
:START
appear
wait_click
:ERASE
erase
wait_click
goto
end
ERASE
Text, 8, 4, "Hello world"
Paper
START
-8-
VIOLET Group
2.2. Cc ng dng
Hin ti chng ti cung cp sn th vin hnh nh v cc on chng trnh c bn
dng cho mn Hnh hc, vi phm vi ng dng l cp THCS. Phn ny s ch yu tp trung
vo Hnh hc clit, bao gm cc loi bi ton nh sau:
Bi ton qu tch v v th hm s
2.3. V d
V d m t mt bi ton dng hnh: v trung trc ca mt on thng c ngi
dng nhp vo khi chy chng trnh. Kch bn ca on m phng ny nh sau:
Quay compa mt na vng trn (cung hng vo im B). Trong khi quay compa
th cung trn cng s c v theo, nt v phi mnh v nht th hin y ch
l v nhp.
a compa n im B
-9-
VIOLET Group
K hiu gc M vung
K hiu M l trung im ca AB
Xa cc nt cung trn v
end
set_paper
appear
move
call
rotate_compa
move
rotate_compa
disappear
Draft
Compa
Compa, ax, ay, angle-90
Compa.OpenCompa, radius
Compa, radius, angle+90
Compa, bx, by, angle+90
Compa, radius, angle+270
Compa
mx =
my =
angle =
get_point
(ax + bx) / 2
(ay + by) / 2
angle + 90
&cx, &cy, mx, my, angle, 4
set_paper
create_line
appear
note_angle
note_edge
note_edge
Paper
cx, cy, 2 * mx
Point, mx, my,
0, "", bx, by,
0, "", ax, ay,
0, "", mx, my,
- cx, 2 * my - cy
"M", leftbelow
mx, my, cx, cy
mx, my
bx, by
- 10 -
VIOLET Group
- 11 -
VIOLET Group
3. Cc lnh trong VS
3.1. Cc lnh x l i tng
Trong th vin ca trnh thng dch VS mn Hnh hc c cc loi i tng hnh nh
nh sau:
Tn i tng
ng dng
Hnh nh
Point
(im)
Ruler
(thc k)
S dng lm vt k v cc on
thng
Compa
(compa)
Pencil
(bt ch)
Protractor
(thc o gc)
TSquare
(-ke)
Measurer
(thc o)
Burin
(dao ct)
Dng ct cc a gic
- 12 -
VIOLET Group
Tham s
Tc dng
appear
xut_hin
1. Tn i tng
To lp v cho xut hin mt i
tng ti v tr X, Y vi cc tham s
2. Ta ca i tng
c th ty theo loi i tng.
3. Tham s c trng 1 (ch
dng cho mt s i tng)
4. Tham s c trng 2 (ch
dng cho mt s i tng)
disappear
bin_mt
Tn mt (hoc nhiu) i
tng
move
dch_chuyn
1. Tn i tng
2. Ta mi (x, y)
3. Gc quay i tng
//
//
//
//
//
M phng v mt im bng bt ch
- 13 -
VIOLET Group
Tham s
Tc dng
polygon
a_gic
Tn a gic
V tr a gic
Ta cc im ca a gic
To mt a gic
clip
ct
Ta ca 2 im bt k nm
trn ng thng ct
unify
hp
Tn a gic
Tn cc a gic s c hp
vo a gic u tin
flip
lt
Tn a gic
- 14 -
VIOLET Group
3.3. Cc lnh ha
Tn lnh
Tham s
Tc dng
erase
Tn i tng cn xa
Xa ni dung ca i tng
circle
Ta ca tm
Bn knh ng trn
line
Ta 2 im u mt
V on thng qua 2 im
note_angle
k_hiu_gc
Kiu nh du
Gi tr k hiu
Ba im hoc 3 ta im
nh du gc v k hiu gi tr ca
gc
note_edge
k_hiu_cnh
Kiu nh du
Gi tr k hiu
Hai im hoc 2 ta im
nh du cnh v k hiu gi tr ca
cnh
attach_pen
i tng
Ta im c gn bt
detach_pen
i tng
G b im gn ra khi i tng
V d v tam gic qua 3 im (x1, y1), (x2, y2), (x3, y3) vi y k hiu cnh gc
function ShowTriangle x1, y1, x2, y2, x3, y3
poly_line
x1, y1, x2, y2, x3, y3, x1,
set_paper
Paper, 2, 0x003FBF
note_edge
2, "value", x2, y2, x1, y1
note_edge
1, "value", x3, y3, x2, y2
note_edge
0, "value", x1, y1, x3, y3
note_angle
0, "value", x2, y2, x1, y1,
note_angle
2, "value", x3, y3, x2, y2,
note_angle
1, "value", x1, y1, x3, y3,
end
function main
ShowTriangle
end
2, 7, 7, 7, 3.5, 4
- 15 -
y1
x3, y3
x1, y1
x2, y2
VIOLET Group
Tham s
Tc dng
get_point
ly_im
Ta ca kt qu
Ta ca im gc
Gc
Khong cch R
get_angle
ly_gc
Gc (kt qu)
Ta ca im
Ta ca im gc
Kiu v on thng
Ly gc (trong h ta cc) t
ta ca mt im so vi im gc
get_perpendicular
Ta im kt qu
Ta im
Ta ca hai im nm
trn ng thng
get_intersection1
Ta im kt qu
Ta 2 im trn ng
thng th nht
Ta 2 im trn ng
thng th hai
get_intersection2
Ta im kt qu th 1
Ta im kt qu th 2
Ta 2 im trn ng
thng
Ta tm ng trn
Bn knh ng trn
3.5. Cc lnh ch i
Tn lnh
Tham s
Tc dng
delay
tr
Thi gian tr
wait_click
i_nhn
Tn cc nt ha ang
ch c nhn
- 16 -
VIOLET Group
Tham s
Tc dng
set_drag
ko_th
1. i tng cn thao tc
2. Thao tc (true) hay
khng (false)
Thit lp mt i tng l c th ko th
c hay khng
input_line
nhp_on
Ta 2 im u mt
on thng
input_point
Ta im
input_data
Tiu hp nhp
Tiu v tham s th 1
Tiu v tham s th 2
...
Tham s
Tc dng
parallel
song_song
Khng
sequence
tun_t
Khng
Fscommand
1. command
2. param
VIOLET Group
4. Cc bi ton mu
4.1. Gii thiu
Cc bi ton mu di y l cc v d hon chnh vit bng ngn ng VS, gip cho
ngi c hiu c tng c bn ca vic lp trnh, ng thi cho thy cc quy tc chung
to lp mt chng trnh VS. Ngi dng hon ton c th s dng v pht trin cc bi
tp mu ny theo nhng tng ring ca mnh.
Cc bi tp mu c trnh by ngn gn v d hiu, vi mc ch cho thy kh nng
to cc bi ging sinh ng bng VS l rt d dng. Tt nhin, nhng kh nng thc s m
VS lm c cn ln hn nhiu so vi nhng nhng g th hin trong cc v d y, m
thm ch ngay c tc gi ca ngn ng lp trnh cng cha th khm ph ra ht c.
4.2. V th hm s
Trong chng trnh hc cp 2 v c cp 3 u c cc bi tp v th hm s. gii
quyt mt bi tp ny s khng h n gin (phi tnh o hm, vi phn, kho st s bin
thin hm s,), vy m cng ch quanh qun mt s dng hm s c bn. Tuy nhin, vi
mt ngn ng lp trnh bnh thng, ta c th v c th bt k m khng cn phi tnh
ton o hm, vi phn, Vi VS, vic v th cn d dng hn nhiu.
V d di y s v th hm s y = (x-2)*(x-1)*x*(x+1)*(x+2), ngha l mt th
ct trc honh ti cc im -2, -1, 0, 1 v 2.
function main
line 0, y0 = 6, 16, y0
line x0 = 8, 0, x0, 12
set_paper Paper, 3, 0xFF00FF
appear Pencil
attach_pen Pencil
for x from -2.2 to 2.4 step 0.05
y = (x-2)*(x-1)*x*(x+1)*(x+2)
set_pos Pencil, x0 + x, y0 - y
delay 1
next
end
- 18 -
VIOLET Group
0xBF00BF
oy=6, "O", right
ay=8, "A", left
"M"
2, 0x0000BF
py
M, P
M, A
next
end
Bi 2: ng Cycloide
ng qu tch c sinh ra khi mt vng trn chy xung quanh mt vng trn khc.
Trong phn chng trnh di y 3 bin s R1, R2 v L c th c sa i ty s to ra
v vn nhng loi ng cycloide khc nhau.
function main
R1 = 2.0
R2 = 0.8
L = 2.0
set_paper Draft, 2, 0
circle x0=8.25, y0=5.75, R1
set_paper Wheel, 2, 0x0000FF
set_fill 0x7FBFFF, 50
- 19 -
VIOLET Group
circle 0, 0,
line 0, -R2,
line -R2, 0,
circle L*R2,
R2
0, R2
L*R2, 0
0, 0.1
end
VIOLET Group
function v_hnh
set_paper
erase
get_pos
get_pos
get_pos
poly_line
Draft, 3, 0x0000FF
&x3, &y3, PointA
&x1, &y1, PointB
&x2, &y2, PointC
x1, y1, x2, y2, x3, y3, x1, y1
set_paper
set_fill
get_angle
get_point
poly_line
cx1 =
cy1 =
Draft, 2
0x7FBFFF, 50
&angle, x1, y1, x3, y3
&x, &y, x1, y1, angle+60, sqrt((x3-x1)^2+(y3-y1)^2)
x3, y3, x, y, x1, y1
(x3 + x + x1) / 3
(y3 + y + y1) / 3
get_angle
get_point
poly_line
cx2 =
cy2 =
&angle,
&x, &y,
x3, y3,
(x3 + x
(y3 + y
get_angle
get_point
poly_line
cx3 =
cy3 =
end_fill
&angle,
&x, &y,
x2, y2,
(x1 + x
(y1 + y
set_paper
set_fill
poly_line
Draft, 3, 0xFF0000
0xFF3F3F, 75
cx1, cy1, cx2, cy2, cx3, cy3, cx1, cy1
end
function main
appear
appear
appear
set_drag
set_drag
set_drag
v_hnh
end
- 21 -
VIOLET Group
function DrawTriangle x1, y1, x2, y2, x3, y3, a1, a2, a3
create_line2 x1, y1, x2, y2
appear
Point, x1, y1, a1, below
appear
Point, x2, y2, a2, below
note_edge
-1, value, x2, y2, x1, y1
delay
12
end
set_paper
create_arc
create_arc
appear
delay
Draft
x1, y1, lenAB, 0, 90
x2, y2, lenAC, 90, 180
Point, x3, y3, a3, above
12
set_paper
create_line
note_edge
create_line
note_edge
delay
erase
Paper
x1, y1, x3, y3
-1, value, x1, y1, x3, y3
x3, y3, x2, y2
-1, value, x3, y3, x2, y2
12
Draft
- 22 -
VIOLET Group
Dch file ny thnh file swf, trong file thng tin ca chng trnh dch VS, khai bo
tn i tng l L_xo v ch ng dn n file swf. Sau vit chng trnh VS nh sau:
function main
set_paper Giado, 8, 0x7F7F7F
poly_line 5, 10, 6, 10, 6, 1, 10, 1, 10, 10, 11, 10
appear Spring, 8, 1
set_paper Sphere
sphere 0, 0.6, 0.6, 0x0000FF, 0xBFBFFF
for t from 0 to 100000
len = 6 + sin(t*15)
set_pos Sphere, 8, len + 1
call Spring.DrawSpring, len
delay 1
next
end
- 23 -