Violet Script

Embed Size (px)

Citation preview

NGN NG LP TRNH VIOLET SCRIPT

VIOLET Group

Ngn ng lp trnh Violet Script

H NI, 5/2004

-2-

VIOLET Group

Ngn ng lp trnh Violet Script

MC LC1. 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

Ngn ng lp trnh Violet Script

1. Tng quan1.1. Gii thiu s lcViolet 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.

1.2. Cc c im chnh ca ngn ng1.2.1. Ngn ng m phngNgn ng lp trnh VS h tr rt nhiu v cc k thut m phng. Cc thao tc v ha v m phng hu ht c lp trnh sn, li thm kh nng m np th vin ng, kh nng s dng cc d liu m thanh, hnh nh mt cch d dng, VS s gip ngi cho ngi dng c th vit c nhng phn mm ha cao cp m khng cn nhng kin thc chuyn su v ha. C th coi vic lp trnh m phng bng ngn ng VS ch n gin l vic m t li kch bn ca qu trnh m phng. Sau , trnh thng dch ca VS s thc hin cc cng vic ha v m phng theo nh kch bn ny. Do vy, ngi dng hon ton c th to c mt qu trnh m phng phc tp ch bng mt on chng trnh VS rt ngn gn (so vi cc ngn ng lp trnh khc).

1.2.2. La chn ch chy song song hoc tun tCc ngn ng thng dch thng phi chy di dng tun t (chy ht lnh ny ri mi n lnh khc). Tuy vy, trong m phng, i khi ta cn to nhiu thao tc m phng ng thi (v d nh hai hay nhiu vt cng chuyn ng mt lc). V vy, VS c th cho php ngi lp trnh thit lp c ch x l lnh l song song hay tun t. y cng l mt c im c o v tin dng ca ngn ng VS so vi cc ngn ng lp trnh khc.

-4-

VIOLET Group

Ngn ng lp trnh Violet Script

1.2.3. Kh nng s dng cc th vin mTuy VS l ngn ng chuyn dng trong lnh vc ha v m phng, song ha l mt lnh vc rt rng nn VS ch c tnh tng qut. N khng th bao hm c ht tt c cc thao tc m phng, chng trnh thng dch VS cng khng th cha tt c cc d liu, th vin hnh nh thng dng cho mi sn phm. Tuy nhin, i vi ngi lp trnh khng chuyn, vn t ra l phi lm sao cho mi th hu nh c sn ht. V vy, ngn ng VS c mt h thng th vin y km theo v cp nht thng xuyn. Cc th vin ny cha nhiu hnh nh, m hnh, biu tng thng dng v c th ly ra s dng mt cch d dng, cc thao tc chuyn ng c lp trnh sn, cc mu chng trnh chun cng c th s dng vi kh nng ty bin cao. V d: trong vic to bi ging, nu phn loi theo cc mn hc th ngn ng VS (c th l trnh thng dch ca ngn ng VS) s phc v cho tt c cc mn. Tuy nhin, th vin s dng cho tng mn s khc nhau, ngha l ta s c th vin cho mn Ton, th vin cho mn Vt L, v.v Nh vy, kh nng ci tin chng trnh v cp nht t liu ca VS s tr nn d dng. Th vin ng l mt trong nhng u im hn hn ca VS so vi hu ht cc phn mm cng c to bi ging hin nay.

1.2.4. So snh ngn ng VS vi TimelineNhng ngi tng dng hoc xem cc chng trnh nh Macromedia Flash, Macromedia Diector, Adobe Premier, hn khng th khng bit n khi nim Timeline (trc thi gian). y l mt cng c thit k rt quan trng trong vic to ra cc chuyn ng, cc hiu ng ca hnh nh v m thanh, lm phim hot hnh, xy dng cu trc ca mt sn phm, Timeline l mt cng c rt hu ch, c bit i vi ngi khng bit lp trnh cng c th dng n xy dng phn mm multimedia ng dng c. Tuy nhin im nhc c bn ca Timeline l khng c tnh m. V d: dng Timeline c th d dng to mt chuyn ng trong vng 3 giy, nhng khng th dng Timeline to chuyn ng trong vng n giy, vi n l mt gi tr c nhp t bn phm hoc t file bn ngoi. Trong khi , vic xy dng cc phn mm tr ging li i hi cng c phi c tnh m. V bi ging ca mi gio vin l khng ging nhau, nn phn mm tr ging phi cho php gio vin t sa theo mnh c. Trong trng hp ny, ngi sn xut phn mm khng cn cch no khc l phi la chn mt ngn ng lp trnh. Mt khc, i vi nhng ngi bit lp trnh ri th dng ngn ng cng d chu hn so vi dng Timeline. V d: c th sa i s liu mt cch d dng v chnh xc, c th comment (vit li gii thch) cho cc on chng trnh, c th phn chia chng trnh ln thnh cc module nh Vic thao tc vi cc dng code cng d dng hn so vi cc i tng ha v Timeline. Code c th dng bt c chng trnh son tho vn no to lp v sa i ch khng cn phi mt h thng s nh khi dng Timeline. Tuy vy, dng Timeline cng c mt u im hn so vi ngn ng l tnh n nh, t b li. Cn vic lp trnh nu khng cn thn th s c th sinh ra rt nhiu li. Do , trong qu trnh pht trin th ngn ng th cng phi dn dn khc phc yu im ny.

-5-

VIOLET Group

Ngn ng lp trnh Violet Script

1.3. S dng Violet Script trong VioletViolet Script khi ngun l mt ngn ng chy c lp, c th dng t xy dng c cc bi ging hon chnh. Khi c kt hp vi cng c Violet, ngn ng ny thng ch dng to mt on m phng ngn trn mt trang mn hnh, v vy nn s n gin hn v d qun l hn. i vi ngi dng th va c c s linh hot ca ngn ng, li va s dng c cc tnh nng d dng ca Violet nh to hiu ng, to cc bi tp,... s dng VS trong Violet, vo mc son tho trang mn hnh, nhn nt Cng c, mt menu hin ln, ta chn mc Lp trnh m phng. Mn hnh sau hin ra v ta c th son tho trc tip chng trnh vo y.

Mn hnh son tho Script Nu chng trnh c s dng cc i tng nh, hoc cc th vin m ngun t file text, th sau khi vit xong, click vo nt "Tip tc", mn hnh sau hin ra:

Mn hnh nhp cc m ngun bn ngoi v cc i tng

-6-

VIOLET Group

Ngn ng lp trnh Violet Script

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.

1.4. Cu trc ngn ngViolet Script 1.0, gn ging ngn ng Basic cc cu trc lnh v ngn ng C cu trc chng trnh.

1.4.1. Chng trnh vit bng VSGing nh C, chng trnh VS bao gm cc hm, trong hm main s c gi ngay khi bt u chy chng trnh.function main appear end Text, 8, 4, "Hello world"

Mt chng trnh con (mt hm, chc nng) s c khai bo nh sau:function ... end

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 &ax, &ay, &bx, &by &x, &y, x1, y1, angle, 2

-7-

VIOLET Group

Ngn ng lp trnh Violet Script

1.4.2. Cc lnh n ginNgn ng VS cung cp cc loi lnh sau: Cc lnh gn, v d a = 2; a = 10*5 + 1; b = a^2 + a + 1 Cc lnh c bn: v d lnh appear nh trong chng trnh trn Cc lnh gi chng trnh con: c c php ging nh lnh c bn

1.4.3. Cc biu thcCc biu thc ton hc c th s dng trong v phi ca cc lnh gn, hoc lm tham s ca cc lnh khc. Mt biu thc bao gm cc thnh phn: Cc ton hng: gi tr s, bin s Cc ton t: + , - , * , / , ^ Cc hm s: sin, cos, tg, cotg, arcsin, arccos, arctg, arccotg, abs, sqrt, ln Cc du ngoc n"(" v ")"

V d tnh gc B ca tam gic ABC nu bit di 3 cnh AB, AC v BC, p dng nh l hm s cos.lenAB = lenAC = lenBC = angleB = 2 3 4 arccos((lenAB^2 + lenBC^2 - lenAC^2)/(2*lenAB*lenBC))

1.4.4. Cc lnh c cu trcLnh iu kinif then end_if

Lnh lpfor from to step next

1.4.5. Cc nhnC 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

Ngn ng lp trnh Violet Script

2. VS trong m phng Hnh hc2.1. Kh nng ca ngn ngHin ti, chng ti cung cp sn mt file m ngun chun cha cc thao tc dng hnh c bn nh v ng thng bng thc k, v ng trn bng compa, ct ghp a gic v.v... l C:\Program Files\Platin Violet\Lecture\vpScript\Common\Mathtool.vs V vy, trong mn Hnh hc, ngn ng Violet Script s h tr nhiu trong cc loi cng vic sau: V hnh trn mn hnh ha (on thng, ng trn, th,) S dng cc i tng c sn trong th vin (v d vi mn hnh hc c: compa, thc k, bt, ty, -ke, thc o , giy mu, dao ct), v m phng hot ng ca tng i tng ny. X l cc tng tc vi ngi dng (nhn chut, ko th, nhp t bn phm,)

2.2. Cc ng dngHin 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 v hnh v x l tng tc vi ngi dng Bi ton dng hnh bng cc dng c dng hnh thng dng Bi ton ct ghp hnh (m phng vic ct ghp cc mnh giy mu) Bi ton qu tch v v th hm s

2.3. V dV 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: Ngi dng nhn chut xc nh im th nht, nhn tip chut xc nh im th hai nh du v k hiu hai im A, B va nhp M phng vic dng thc k v bt ch v mt on thng gia hai im AB Xut hin mt compa v a compa vo v tr ca im A M rng compa (khong cch 2 u compa bng khong 2/3 AB) 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 Quay compa mt na vng trn (cung hng vo im A)

-9-

VIOLET Group

Ngn ng lp trnh Violet Script

Dng thc k v bt ch v mt on thng i qua 2 giao im ca 2 cung trn, di ca on thng ny l mt gi tr hp l. chnh l ng trung trc ca on thng AB. nh du im M l giao im ca ng trung trc vi on thng AB K hiu gc M vung K hiu M l trung im ca AB Xa cc nt cung trn v

Ta s m ha kch bn m phng trn thnh ngn ng VS nh sau:function main appear input_line disappear appear appear create_line radius = get_angle set_paper appear move call rotate_compa move rotate_compa disappear mx = my = angle = get_point set_paper create_line appear note_angle note_edge note_edge

Text, 8.25, 0.5, "Hy v mt on thng", 2 &ax, &ay, &bx, &by Text Point, ax, ay, "A", below Point, bx, by, "B", below ax, ay, bx, by sqrt((ax-bx)^2 + (ay-by)^2) / 3 * 2 &angle, ax, ay, bx, by Draft Compa Compa, ax, ay, angle-90 Compa.OpenCompa, radius Compa, radius, angle+90 Compa, bx, by, angle+90 Compa, radius, angle+270 Compa (ax + bx) / 2 (ay + by) / 2 angle + 90 &cx, &cy, mx, my, angle, 4 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

end

Lu : Mt n v tnh trong Violet Script c quy nh mc nh l 40 pixel, rng ca mn hnh hin th l 660x460 pixel, tc l khong 16.5x11.5 n v. Chng trnh ny s dng cc thao tc dng hnh chun (trong file Mathtool.vs) v cc i tng hnh nh: thc k, bt ch, compa. V vy, sau khi son xong chng trnh, ta phi khai bo cc d liu ny nh sau:

- 10 -

VIOLET Group

Ngn ng lp trnh Violet Script

Nhn nt ng , ta s c on m phng dng ng trung trc ca mt on thng bt k c nhp vo t con chut (nhn, ko v th).

M phng v ng trung trc bng compa, thc k, bt ch C th thy vic vit mt chng trnh m phng nh trn ch n gin l m ha 1:1 kch bn m phng thnh ngn ng VS. R rng vic to bi ging Hnh hc bng ngn ng VS s n gin hn nhiu so vi cc ngn ng lp trnh khc. V d nu s dng C/C++ th to mt bi ging, c th phi vit chng trnh di n hng nghn dng lnh v hng chc file d liu, cn nu dng ngn ng VS th ch cn vi chc dng lnh v khng cn file d liu.

- 11 -

VIOLET Group

Ngn ng lp trnh Violet Script

3. Cc lnh trong VS3.1. Cc lnh x l i tngTrong th vin ca trnh thng dch VS mn Hnh hc c cc loi i tng hnh nh nh sau: Tn i tng Point (im) Ruler (thc k) Compa (compa) ng dng K hiu im trn hnh v S dng lm vt k v cc on thng Dng v cc hnh trn hoc cung trn Hnh nh

Pencil (bt ch)

Dng v on thng hoc cc ng th

Protractor (thc o gc)

Dng xc nh gc trong vic v gc

TSquare (-ke)

Dng v on thng vung gc vi mt on thng c sn

Measurer (thc o) Burin (dao ct)

Dng o cnh hoc gc Dng ct cc a gic

C hnh dng l thc k hoc thc o gc ty ngi s dng

- 12 -

VIOLET Group

Ngn ng lp trnh Violet Script

s dng cc loi i tng ca VS cng nh cc i tng c np t th vin bn ngoi, ngn ng VS cung cp cc lnh sau: Tn lnh appear xut_hin Tham s Tc dng

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) Tn mt (hoc nhiu) i tng 1. Tn i tng 2. Ta mi (x, y) 3. Gc quay i tng Lm cho cc i tng bin mt (m dn ri mt hn) Va dch chuyn va quay i tng ti v tr mi v gc quay mi. Nu khng nhp gc quay th gc quay mc nh l 0.

disappear bin_mt move dch_chuyn

V d di y s m phng vic v mt im bng bt chfunction main appear Pencil move Pencil, 5, 5 appear Point, 5, 5, A delay 12 disappear Pencil end // // // // // Xut hin thc k v tr (0,0) a bt ch v tr (5, 5) Xut hin im A v tr (5, 5) Tm dng 1 giy Lm bin mt bt ch

M phng v mt im bng bt ch

- 13 -

VIOLET Group

Ngn ng lp trnh Violet Script

3.2. Cc lnh x l a gicTn lnh polygon a_gic clip ct unify hp flip lt Tham s Tn a gic V tr a gic Ta cc im ca a gic Ta ca 2 im bt k nm trn ng thng ct Tn a gic Tn cc a gic s c hp vo a gic u tin Tn a gic Tc dng To mt a gic

Ct tt c cc a gic trn mn hnh theo mt ng thng Hp nhiu a gic thnh mt i tng Lt mt a gic qua trc tung

Phn v d di y l mt chng trnh hon chnh, thc hin vic ct v ghp cc gc ca mt tam gic chng minh tng ca chng bng 180. Khi chy, ngi dng s xc nh cc ng ct qua gc th nht v ng ct qua gc th hai, sau mi ln ct th cc mu ct s c ghp vo ng v tr cn thit.function main polygon input_line cut_polygon move input_line cut_polygon move end Tamgiac, 8, 6, 0x7F7FFF, -1, -3, 3, 1, -3, 1 &px1, &py1, &px2, &py2 px1, py1, px2, py2 Tamgiac2, 4, 4, -180 &px1, &py1, &px2, &py2 px1, py1, px2, py2 Tamgiac12, 10, 4, 180

M phng ct mt gc ca hnh tam gic bng dao ct

- 14 -

VIOLET Group

Ngn ng lp trnh Violet Script

3.3. Cc lnh haTn lnh erase circle line note_angle k_hiu_gc note_edge k_hiu_cnh attach_pen Tham s Tn i tng cn xa Ta ca tm Bn knh ng trn Ta 2 im u mt Kiu nh du Gi tr k hiu Ba im hoc 3 ta im Kiu nh du Gi tr k hiu Hai im hoc 2 ta im i tng Ta im c gn bt i tng Tc dng Xa ni dung ca i tng V ng trn bit tm v bn knh. V on thng qua 2 im nh du gc v k hiu gi tr ca gc nh du cnh v k hiu gi tr ca cnh Gn vo i tng mt im, m khi thay i v tr ca i tng th im ny s lu li vt G b im gn ra khi i tng

detach_pen

V d v tam gic qua 3 im (x1, y1), (x2, y2), (x3, y3) vi y k hiu cnh gcfunction 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 y1

x3, y3 x1, y1 x2, y2

- 15 -

VIOLET Group

Ngn ng lp trnh Violet Script

3.4. Cc lnh phc v tnh ton trong hnh hc phngTn lnh get_point ly_im Tham s Ta ca kt qu Ta ca im gc Gc Khong cch R Gc (kt qu) Ta ca im Ta ca im gc Kiu v on thng Ta im kt qu Ta im Ta ca hai im nm trn ng thng Ta im kt qu Ta 2 im trn ng thng th nht Ta 2 im trn ng thng th hai 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 Tc dng Chuyn t ta cc sang ta cc (tnh ta ca im bit R v trong h ta cc) Ly gc (trong h ta cc) t ta ca mt im so vi im gc

get_angle ly_gc

get_perpendicular

Tnh v tr ca chn ng vung gc h t mt im xung mt ng thng Tnh giao im gia hai ng thng

get_intersection1

get_intersection2

Tnh hai giao im ca mt ng thng v mt ng trn

3.5. Cc lnh ch iTn lnh delay tr wait_click i_nhn Tham s Thi gian tr Tn cc nt ha ang ch c nhn Tc dng Dng (tr) mt khong thi gian i cho n khi ngi dng click vo nt ha trn mn hnh. Nu lnh khng c tham s ngha l ch n khi nhn nt Next v nt Back. Cc nt ha c th c np t file ngoi bng lnh load_movie

- 16 -

VIOLET Group

Ngn ng lp trnh Violet Script

3.6. Cc lnh phc v x l tng tcTn lnh set_drag ko_th input_line nhp_on input_point input_data Tham s 1. i tng cn thao tc 2. Thao tc (true) hay khng (false) Ta 2 im u mt on thng Ta im Tiu hp nhp Tiu v tham s th 1 Tiu v tham s th 2 ... Tc dng Thit lp mt i tng l c th ko th c hay khng Nhp mt on thng (2 im) bng cch nhn vo ko chut Nhp mt im bng cch nhn chut Hin ra mt hp thoi cho php nhp mt hoc nhiu tham s t bn phm

3.7. Cc lnh iu khin h thngTn lnh parallel song_song sequence tun_t Fscommand Khng Khng 1. command 2. param Tham s Tc dng Thit lp ch thc hin cc lnh l song song Thit lp ch thc hin cc lnh l tun t Thc hin lnh fscommand ca Flash Action Script.

3.8. Cc lnh trong th vin Hnh hc1) create_line x1, y1, x2, y2M phng v mt on thng bng thc k v bt ch t im (x1, y1) n im (x2, y2)

2) create_corner x1, y1, angle, lenM phng v mt gc bng thc o , thc k, bt ch. u tin a thc o n v tr ca mt ng nm ngang, tm thc l (x1, y1), ly mt im gc angle, ri k t tm i qua im mt on c di l len.

3) rotate_compa Compa, radius, angleQuay i tng Compa mt gc angle t v tr hin ti, cn radius l m ca Compa (phi ging nh lnh call Compa.Open, trc )

4) create_arc x1, y1, radius, start, endM phng v mt cung trn tm (x1, y1), bn knh radius (c xc nh bng compa v thc k), t gc start n gc end.

5) cut_polygon x1, y1, x2, y2M phng ct bng dao ct i vi tt c cc hnh a gic c to bng lnh polygon - 17 -

VIOLET Group

Ngn ng lp trnh Violet Script

4. Cc bi ton mu4.1. Gii thiuCc 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 sTrong 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

Ngn ng lp trnh Violet Script

4.3. Bi ton qu tchBi ton 1: Cho mt im A c nh nm trong ng trn tm O, k ng thng qua A ct ng trn ti P. Tm qu tch trung im M ca OP khi P chuyn ng trn ng trn.function main set_paper Paper, 2, appear Point, ox=8, appear Point, ax=8, circle ox, oy, 4 appear Point, 0, 0, attach_pen PointM

0xBF00BF oy=6, "O", right ay=8, "A", left "M"

for angle from 135 to 135-360 step -2 get_point &px, &py, ox, oy, angle, 4 appear Point, px, py, "P" set_pos PointM, (px+ax)/2, (py+ay)/2 set_paper Draft, erase line ax, ay, px, note_edge 2, "", note_edge 2, "", delay 1 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

Ngn ng lp trnh Violet Script

circle 0, 0, line 0, -R2, line -R2, 0, circle L*R2,

R2 0, R2 L*R2, 0 0, 0.1

set_paper Paper, 3, 0xFF0000 attach_pen Wheel, L*R2, 0 for t from 0 to 720 step 2 get_point &x, &y, x0, y0, t, R1+R2 set_pos Wheel, x, y, t*(R1+R2)/R2 delay 1 next disappear Wheel disappear Draft

end

M phng cch v ng Cycloide

Mt trong nhng dng ng Cycloide

4.4. Tam gic NapoleonT 3 cnh ca 1 tam gic bt k v ra pha ngoi 3 tam gic u. Tm ca 3 tam gic u ny s l nh ca mt tam gic u gi l tam gic Napoleon. Phn chng trnh di y s v tam gic Napoleon. Ngi dng c th ko th cc nh ca tam gic ban u thy tam gic Napoleon bin i nh th no. - 20 -

VIOLET Group

Ngn ng lp trnh Violet Script

function v_hnh set_paper erase get_pos get_pos get_pos poly_line set_paper set_fill get_angle get_point poly_line cx1 = cy1 = get_angle get_point poly_line cx2 = cy2 = get_angle get_point poly_line cx3 = cy3 = end_fill set_paper set_fill poly_line end function main appear appear appear set_drag set_drag set_drag v_hnh end

Draft, 3, 0x0000FF &x3, &y3, PointA &x1, &y1, PointB &x2, &y2, PointC x1, y1, x2, y2, x3, y3, x1, y1 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 &angle, &x, &y, x3, y3, (x3 + x (y3 + y &angle, &x, &y, x2, y2, (x1 + x (y1 + y x3, y3, x2, y2 x3, y3, angle+60, sqrt((x3-x2)^2+(y3-y2)^2) x, y, x2, y2 + x2) / 3 + y2) / 3 x2, y2, x1, y1 x2, y2, angle+60, sqrt((x2-x1)^2+(y2-y1)^2) x, y, x1, y1 + x2) / 3 + y2) / 3

Draft, 3, 0xFF0000 0xFF3F3F, 75 cx1, cy1, cx2, cy2, cx3, cy3, cx1, cy1

Point, ax=7, ay=3, "A", above Point, bx=5, by=6, "B", leftbelow Point, cx=11,cy=6, "C", rightbelow PointA, true, v_hnh PointB, true, v_hnh PointC, true, v_hnh

Tam gic Napoleon

- 21 -

VIOLET Group

Ngn ng lp trnh Violet Script

4.5. Dng tam gic bit 3 cnhy l mt bi rt c bn trong dng hnh: Dng mt tam gic bit di 3 cnh m ch dng thc k v compa.function main input_data angleB = get_point DrawTriangle end "Nhp 3 cnh", "AB", lenAB, "AC", lenAC, "BC", lenBC arccos((lenAB^2 + lenBC^2 - lenAC^2)/(2*lenAB*lenBC)) &ax, &ay, 4, 7, angleB, lenAB 4, 7, 4+lenBC, 7, ax, ay, B, C, A

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 set_paper create_arc create_arc appear delay set_paper create_line note_edge create_line note_edge delay erase Draft x1, y1, lenAB, 0, 90 x2, y2, lenAC, 90, 180 Point, x3, y3, a3, above 12 Paper x1, y1, x3, y3 -1, value, x1, y1, x3, y3 x3, y3, x2, y2 -1, value, x3, y3, x2, y2 12 Draft

end

on m phng ny c s dng th vin cc thao tc dng hnh chun (chnh l file Mathtool.vs) c cung cp km theo Violet, v cc i tng hnh nh nh sau:

Cc th vin m ngun v hnh nh s dng trong bi ton dng hnh

- 22 -

VIOLET Group

Ngn ng lp trnh Violet Script

4.6. M phng con lc l xo m phng mt con lc l xo co gin, c th s dng mt nh l xo, sau co gin nh. Tuy nhin k thut ny s lm cho dy ca dy l xo thay i nn khng ng thc t. to mt chic l xo co gin p, ta phi lp trnh v to ra mt i tng ring cho VS. Trong Macromedia Flash, to mt file mi, click chut vo frame duy nht trn timeline, sau m hp son tho Action Script (nhn F9), g on m sau vo:function DrawSpring(len) { clear(); lineStyle(3, 0, 100); for (var i = 0; i