Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (728.27 KB, 24 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
I) <b>GIỚI THIỆU SƠ LƯỢC VỀ VIOLET SCRIPT </b>
<b>1) Giới thiệu sơ lược về lập trình mơ phỏng Violet Script</b>
<b>a) Cấu trúc chương trình : C</b>hương trình VS bao gồm các hàm, trong đó hàm main sẽ được gọi ngay khi bắt đầu chạy chương trình.
function main
appear Text, 8, 4, "Hello world"
end
Một chương trình con (một hàm, chức năng) sẽ được khai báo như sau:
function <tên hàm> <các tham số>
<lệnh 1>
<lệnh 2>
...
end
Trong đó tên chương trình con khơng có dấu cách (có thể dùng dấu gạch chân "_" thay cho dấu cách). Các tham số thì phải khai báo cách nhau bởi
dấu phẩy. Có thể xem thêm các ví dụ minh họa trong các phần sau.
Khi gọi chương trình con, nếu nó thay đổi giá trị các tham số thì khi gọi ta nên thêm dấu & vào phía trước tham số (giống cú pháp của ngơn ngữ
C). Ví dụ:
input_line &ax, &ay, &bx, &by
get_point &x, &y, x1, y1, angle, 2
Ngôn ngữ VS cung cấp các loại lệnh sau:
Các lệnh gán, ví dụ a = 2; a = 10*5 + 1; b = a^2 + a + 1
Các lệnh cơ bản: ví dụ lệnh appear như trong chương trình trên
Các lệnh gọi chương trình con: có cú pháp giống như lệnh cơ bản
Các biểu thức toán học có thể sử dụng trong vế phải của các lệnh gán, hoặc làm tham số của các lệnh khác. Một biểu thức bao gồm các thành
phần:
Các toán hạng: giá trị số, biến số
Các toán tử: + , - , * , / , ^
Các hàm số: sin, cos, tg, cotg, arcsin, arccos, arctg, arccotg, abs, sqrt, ln
Các dấu ngoặc đơn"(" và ")"
Ví dụ tính góc B của tam giác ABC nếu biết độ dài 3 cạnh AB, AC và BC, áp dụng định lý hàm số cos.
AB = 2
AC = 3
BC = 4
angleB = arccos((AB^2 + BC^2 - AC^2)/(2*AB*BC))
<b>d) Các lệnh có cấu trúc</b>
Lệnh điều kiện
if <điều kiện> then
Lệnh lặp
for <tên biến> from <cận dưới> to <cận trên> step <bước nhảy>
<các lệnh>
next
<b>e) Các nhãn</b>
Có thể coi nhãn là các lệnh đặc biệt, được ký hiệu bởi dấu ":" và tên nhãn. Nhãn dùng vừa để đánh dấu, vừa để mô tả các đoạn lệnh. Nhãn thường
được dùng như một định danh để có thể truy cập (goto) đến đoạn lệnh từ bất kỳ vị trí nào trong chương trình. Ví dụ:
function main
goto ERASE
:START
appear Text, 8, 4, "Hello world"
wait_click
:ERASE
wait_click
goto START
end
<b>2) CÁC LỆNH CƠ BẢN TRONG NGÔN NGỮ LẬP TRÌNH VIOLET SCRIPT</b>
<b>a) Các đối tượng và lệnh xử lý đối tượng</b>
Trong thư viện của trình thơng dịch VS mơn Hình học có các loại đối tượng hình ảnh như sau:
<b>Tên đối</b>
<b>tượng</b>
<b>Ứng dụng</b> <b>Hình ảnh</b> <b>Tên đối tượng</b> <b>Ứng dụng</b> <b>Hình ảnh</b>
Point
(điểm)
Ký hiệu điểm trên hình vẽ Protractor
(thước đo góc)
Dùng để xác định góc
trong việc vẽ góc
Ruler
(thước kẻ)
Sử dụng làm vật kê để vẽ
các đoạn thẳng
TSquare
(ê-ke)
Dùng để vẽ đoạn thẳng
vng góc với một
đoạn thẳng có sẵn
Compa
(compa)
Dùng để vẽ các hình trịn
hoặc cung trịn
Measurer
(thước đo)
Dùng để đo cạnh hoặc
góc
Có hình dạng là thước
kẻ hoặc thước đo góc
tùy ý người sử dụng
Pencil
(bút chì)
Dùng để vẽ đoạn thẳng
hoặc các đường đồ thị
Burin
(dao cắt)
Để sử dụng các loại đối tượng của VS cũng như các đối tượng được nạp từ bên ngoài, ngôn ngữ VS cung cấp các lệnh sau:
<b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b>
Ví dụ dưới đây sẽ mơ phỏng việc vẽ một điểm bằng bút chì
appear
xuất_hiện
Tên đối tượng
Tọa độ của đối tượng
Tạo lập và cho xuất hiện
một đối tượng tại vị trí X,
Y với các tham số cụ thể
tùy theo loại đối tượng.
function main
appear Pencil // Xuất hiện bút chì ở (0,0)
move Pencil, 5, 5 // Đưa bút chì ở vị trí (5,5)
appear Point, 5, 5, A // Xuất hiện điểm A ở (5,5)
delay 12 // Tạm dừng 1 giây
disappear Pencil // Làm biến mất bút chì
end
disappear
biến_mất
Tên một (hoặc nhiều)
đối tượng
Làm cho các đối tượng
biến mất (mờ dần rồi mất
hẳn)
move
dịch_chuyển
Tên đối tượng
Tọa độ mới (x, y)
Góc quay đối tượng
Vừa dịch chuyển vừa quay
đối tượng tới vị trí mới và
góc quay mới. Nếu khơng
nhập góc quay thì góc
quay mặc định là 0.
function main
b) Các lệnh xử lý đa giác
<b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b> <b>Ví dụ : </b>Cắt ghép các góc của tam giác để chứng minh định lí về tổng ba góc của tam
giác
polygon
đa_giác
Tên đa giác
Vị trí đa giác
Tọa độ các điểm của
đa giác
Tạo một đa giác
Khi chạy, người dùng sẽ xác định các đường cắt qua góc thứ nhất và đường
cắt qua góc thứ hai, sau mỗi lần cắt thì các mẩu cắt sẽ được ghép vào đúng vị trí cần
thiết.
function main
polygon Tamgiac, 8, 6, 0x7F7FFF, -1, -3, 3, 1, -3, 1
input_line &px1, &py1, &px2, &py2
cut_polygon px1, py1, px2, py2
clip
cắt
Tọa độ của 2 điểm bất
kỳ nằm trên đường
thẳng cắt
move Tamgiac2, 4, 4, -180
input_line &px1, &py1, &px2, &py2
cut_polygon px1, py1, px2, py2
move Tamgiac12, 10, 4, 180
unify
hợp
Tên đa giác
Tên các đa giác sẽ
được hợp vào đa giác
đầu tiên
Hợp nhiều đa giác thành
một đối tượng
flip
lật
Tên đa giác Lật một đa giác qua trục
tung
c) Các lệnh đồ họa
<b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b> <b>Ví dụ : Vẽ tam giác có đầy đủ kí hiệu về cạnh và góc</b>
erase Tên đối tượng cần xóa Xóa nội dung của đối
tượng Ví dụ vẽ tam giác qua 3 điểm (x1, y1), (x2, y2), (x3, y3) với đầy đủ ký hiệu cạnh<sub>góc</sub>
function ShowTriangle x1, y1, x2, y2, x3, y3
poly_line x1, y1, x2, y2, x3, y3, x1, y1
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, x3, y3
note_angle 2, "value", x3, y3, x2, y2, x1, y1
note_angle 1, "value", x1, y1, x3, y3, x2, y2
end
function main
ShowTriangle 2, 7, 7, 7, 3.5, 4
end
circle Tọa độ của tâm
Bán kính đường trịn
Vẽ đường trịn biết tâm và
bán kính.
line Tọa độ 2 điểm đầu
mút
Vẽ đoạn thẳng qua 2 điểm
note_angle
ký_hiệu_góc
Kiểu đánh dấu
Giá trị ký hiệu
Ba điểm hoặc 3 tọa độ
điểm
Đánh dấu góc và ký hiệu
giá trị của góc
note_edge
ký_hiệu_cạnh
Kiểu đánh dấu
Giá trị ký hiệu
Hai điểm hoặc 2 tọa
độ điểm
attach_pen Đối tượng
Tọa độ điểm được gắn
bút
Gắn vào đối tượng một
điểm, mà khi thay đổi vị trí
của đối tượng thì điểm này
sẽ lưu lại vết
detach_pen Đối tượng Gỡ bỏ điểm đã gắn ra khỏi
đối tượng
<b>d) Các lệnh phục vụ tính tốn trong hình học phẳng e) Lệnh tương tác các đối tượng</b>
<b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b> <b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b>
<i><b>get_point</b></i>
lấy_điểm
Tọa độ của kết quả
Tọa độ của điểm gốc
Góc
Khoảng cách R
Chuyển từ tọa độ cực sang tọa
độ Đề-các (tính tọa độ của
điểm biết R và trong hệ tọa
độ cực)
<i><b>set_drag</b></i>
kéo_thả
Đối tượng cần thao
tác
Thao tác (true) hay
không (false)
Thiết lập một đối tượng là có
thể kéo thả được hay khơng
<i><b>get_angle</b></i>
lấy_góc
Góc (kết quả)
Tọa độ của điểm
Tọa độ của điểm gốc
Kiểu vẽ đoạn thẳng
Lấy góc (trong hệ tọa độ
cực) từ tọa độ của một điểm so
với điểm gốc
<i><b>input_line</b></i>
nhập_đoạn
Tọa độ 2 điểm đầu
mút đoạn thẳng
Nhập một đoạn thẳng (2 điểm)
bằng cách nhấn vào kéo chuột
<i><b>get_perpendicula</b></i>
<i><b>r</b></i>
Tọa độ điểm kết quả
Tọa độ điểm
Tọa độ của hai điểm
nằm trên đường thẳng
Tính vị trí của chân đường
vng góc hạ từ một điểm
xuống một đường thẳng
<i><b>input_point</b></i> Tọa độ điểm Nhập một điểm bằng cách
nhấn chuột
<i><b>get_intersection1</b></i> Tọa độ điểm kết quả
Tọa độ 2 điểm trên
đường thẳng thứ nhất
Tọa độ 2 điểm trên
đường thẳng thứ hai
Tính giao điểm giữa hai đường
thẳng
<i><b>input_data</b></i> Tiêu đề hộp nhập
Tiêu đề và tham số
thứ 1
Tiêu đề và tham số
thứ 2...
<i><b>get_intersection2</b></i> Tọa độ điểm kết quả
thứ 1
Tọa độ điểm kết quả
thứ 2
Tọa độ 2 điểm trên
đường thẳng
Tọa độ tâm đường
trịn
Bán kính đường trịn
Tính hai giao điểm của một
đường thẳng và một đường
tròn
<i><b>get_intersection</b></i>
<i><b>3</b></i>
(Lấy giao điểm 2
đường tròn)
&ax,&ay
&bx,&by
4,4
8,4
3
2
Tọa độ điểm kết quả thứ 1
Tọa độ điểm kết quả thứ 2
Tọa độ tâm của đường tròn 1
Tọa độ tâm của đường trịn 2
Bán kính đường trịn 1
Bán kính đường tròn 2
<b>f) </b>Các lệnh chờ đợi
<b>Tên lệnh</b> <b>Tham số</b> <b>Tác dụng</b>
<i><b>delay</b></i>
trễ
Thời gian trễ Dừng (trễ) một khoảng thời gian
<i><b>wait_click</b></i>
đợi_nhấn
Tên các nút đồ họa đang
chờ được nhấn
Đợi cho đến khi người dùng click vào nút đồ họa trên màn hình. Nếu lệnh khơng có tham số nghĩa là
chờ đến khi nhấn nút Next và nút Back.
Các nút đồ họa có thể được nạp từ file ngồi bằng lệnh load_movie
<i><b>g) Các lệnh trong thư viện Hình học (MathTools.vs)</b></i>
<b>create_line x1, y1, x2, y2</b>: Mô phỏng vẽ một đoạn thẳng bằng thước kẻ và bút chì từ điểm (x1, y1) đến điểm (x2, y2)
<b>create_corner x1, y1, angle, len</b>: Mô phỏng vẽ một góc bằng thước đo độ, thước kẻ, bút chì. Đầu tiên đưa thước đo độ đến vị trí của đường nằm
ngang, tâm thước là (x1, y1), lấy một điểm ở góc angle, rồi kẻ từ tâm đi qua điểm đó một đoạn có độ dài là len.
<b>rotate_compa Compa, radius, angle</b>: Quay đối tượng Compa một góc angle từ vị trí hiện tại, cịn radius là độ mở của Compa (phải giống như ở
lệnh call Compa.Open,… trước đó)
<b>create_arc x1, y1, radius, start, end</b>: Mô phỏng vẽ một cung trịn tâm (x1, y1), bán kính radius (được xác định bằng compa và thước kẻ), từ góc
start đến góc end.
<b>cut_polygon x1, y1, x2, y2</b>: Mô phỏng cắt bằng dao cắt đối với tất cả các hình đa giác được tạo bằng lệnh polygon
<b>2.2) Cách đưa phần lập trình mơ phỏng vào trong bài giảng Violet</b>
Tiếp đó ta chép đoạn mã lệnh của chương trình cần thực hiện và khung này
( Thực hiện lệnh <i><b>Ctrl+C , Ctrl+V</b></i>) . Ví dụ đoạn mã lệnh về vẽ đường trung
trực của đoạn thẳng AB .
function main
appear Text, 8.25, 0.5, "Hãy vẽ một đoạn thẳng", 2
input_line &ax, &ay, &bx, &by
disappear Text
appear Point, ax, ay, "A", below
radius = sqrt((ax-bx)^2 + (ay-by)^2) / 3 * 2
get_angle &angle, ax, ay, bx, by
set_paper Draft
appear Compa
move Compa, ax, ay, angle-90
call Compa.OpenCompa, radius
rotate_compa Compa, radius, angle+90
move Compa, bx, by, angle+90
rotate_compa Compa, radius, angle+270
disappear Compa
mx = (ax + bx) / 2
my = (ay + by) / 2
angle = angle + 90
get_point &cx, &cy, mx, my, angle, 4
set_paper Paper
create_line cx, cy, 2 * mx - cx, 2 * my - cy
appear Point, mx, my, "M", leftbelow
note_angle 0, "", bx, by, mx, my, cx, cy
note_edge 0, "", ax, ay, mx, my
note_edge 0, "", mx, my, bx, by
end
Chọn nút có dấu 3 chấm ở mục “<i>Các file thư viện nguồn”</i>
Cách khai báo đường dẫn chi tiết của tệp này l à:
C:\Program Files\Platin ViOLET\Lecture\vpScript\Common\Mathtool.vs
Chọn nút 3 chấm ở mục <i>“Các đối tượng”</i>
Và lệnh khai báo đối tượng ( cơng cụ vẽ hình) , có đường dẫn là :
C:\Program Files\Platin ViOLET\Lecture\vpScript\Template\
Trong mục này ta chọn lần lượt các công cụ : thước kẻ (Rule) , Compa
( Compa) , bút chì (Pencil)
Mỗi lần thêm cơng cụ nhấn vào nút dấu “ +”
Có màn hình như sau :
Sau khi khai báo xong , nhấn nút “<i><b>Đồng ý”</b></i>
Lúc này chương trình tự chạy các bước để vẽ đường trung trực
của đoạn thẳng AB ( Kết quả xem hình bên )
a)M· lƯnh ch¬ng trình vẽ đoạn thẳng MN bằng đoạn thẳng AB
function main
set_paper Draft, 3, 0xFF0000
Line 3, 2, 8, 2
Appear Point, 3, 2, "A", below
Appear Point, 8, 2, "B", below
radius = 5
get_angle &angle, 1, 1, 1, 1
set_paper Draft, 1, 0x0000FF
appear Compa
move Compa, 3, 2
call Compa.OpenCompa, 5
set_paper Draft, 3, 0xFF0000
Line 3, 7, 12, 7
Appear Point, 3, 7, "M", below
set_paper Draft, 1, 0x0000FF
move Compa, 3, 7, angle-10
call Compa.OpenCompa, 5
rotate_compa Compa, radius,
angle+10
disappear Compa
Appear Point, 8, 7, "N", below
Định dạng bản vẽ, độ dày nét vẽ là 3, màu đỏ
Vẽ đoạn thẳng từ toạ độ 3,2 đến toạ độ 8,2
Xuất hiện_điểm, toạ độ 3,2; tên điểm là A, chữ ở dưới điểm
Xuất hiện_điểm, toạ độ 8,2; tên điểm là B, chữ ở dưới điểm
Bán kính bằng 5
Nhập liệu góc điều hướng com pa (bạn có thể thay đổi số để
cảm nhận)
Định dạng bản vẽ, độ dày nét vẽ là 1, màu xanh thẫm
Xuất hiện compa (2 dịng xanh phía trên có thể cho xuống bản
vẽ này)
Di chuyển compa tới toạ độ 3,2 (tức là đinh compa đặt vào A)
Mở compa, bán kính 5 (ngầm định là mở theo phương nằm
ngang tức là đầu chì trùng với B – ta hiểu là compa đo AB)
Định dạng bản vẽ, độ dày nét vẽ là 3, màu đỏ
Vẽ đoạn thẳng từ toạ độ 3,7 tới toạ độ 12,7
Xuất hiện điểm toạ độ là 3,7; tên điểm là M, chữ ở dưới điểm
(Do chỉ có 1 điểm M ở một đầu nên ta tưởng như 1 tia gốc M)
Định dạng bản vẽ, độ dày nét vẽ là 1, màu xanh
Di chuyển compa tới vị trí 3,7; xoay compa -10 độ)
Độ mở compa là 5 (tưởng như nó đo đoạn AB rồi di chuyển
xuống M)
Quay compa, bán kính 5, +10 độ (so với phương nằm ngang)
Biến mất compa
Xuất hiện điểm N tại vị trí 8,7; chữ ở dưới điểm
Kết thúc
appear Text, 8.25, 0.5, "Hãy vẽ
một tia OA", 2
input_line &ax, &ay, &bx, &by
disappear Text
appear Point, ax, ay, "O", below
appear Point, bx, by, "A",
below
set_paper Paper, 2, 0x0003FF
create_line ax, ay, (3*bx-ax)/2,
(3*by-ay)/2
get_angle &angle, ax, ay, bx, by
appear Protractor
move Protractor, ax, ay, angle
appear Text, 8.25, 0.5, "Hãy
đánh dấu điểm thuộc cạnh thứ hai theo
mép thước", 2
input_point &cx, &cy
appear Point, cx, cy, "B", below
disappear Text
disappear Protractor
set_paper Paper, 2, 0x0003FF
create_line ax, ay, (3*cx-ax)/2,
(3*cy-ay)/2
set_paper Paper, 2, 0xF00000
note_angle 2, "value", bx, by, ax,
ay, cx, cy
end
...
Vết đoạn thẳng từ 2 toạ độ ax, ay và bx, by
do click chuột
...
...
...
...
Vẽ đoạn từ O đến (3*bx-ax)/2, (3*by-ay)/2
( vượt qua A )
Nhập liệu hướng điều khiển thước đo góc
( theo hướng OA )
Xuất hiên thước đo góc
Di chuyển thước đo góc tâm thước trùng
vào O, hướng OA
…………..
Nhập liệu toạ độ điểm do click chuột
……..
……..
Biến mất thước đo góc
Vẽ đoạn thẳng từ O đến (3*cx-ax)/2,
(3*cy-ay)/2 (tưởng như vẽ tia vì nó vượt qua B )
……
Đánh dấu góc, kiểu 2 , “số đo”, tạo bởi bx,
by, ax, ay, cx, cy
….
c)
Nhảy số
function main
for t from 0 to 60 step 1
appear Text,8.3,5.5,t
delay 12
next
end
…
Cho t từ 0 đến 60 bước nhảy 1
Xuất hiện dòng chữ tại toạ độ 8.3, 5.5, tên chữ là t
Độ trễ 12
Tiếp tục
…
Đường tròn
function main
set_paper Draft1,5,0x0000FF
circle 8,6,2
appear Point, 8,6, "O",rightbelow
set_paper Draft,5,0xFF0000
for t from 0 to 8 step 0.03
erase
appear Point, t+4,6, "O'",rightbelow
circle t+4,6,1.5
delay 1
next
end
…
…
Vẽ đường tròn tại toạ độ 8, 6, bán kính bằng 2
…
Cho t từ 0 đến 8 bước nhảy 0.03
Xố đối tượng (phía sau lệnh này)
Xuất hiện điểm O toạ độ t+4, 6, chữ ở bên phải phía dưới
Vẽ đường trịn tại toạ độ t+4, 6, bán kính 1.5
Độ trễ 1
Tiếp tục
…
Bán kính function main
set_paper Draft1,5,0x0000FF
circle 8,6,2
appear Point, 8,6, "O",rightbelow
set_paper Draft,5,0xFF0000
for v from 0 to 360*v step 5
get_point &ax, &ay, 8, 6, v, 2
appear Point, ax,ay, "A", right
erase
line ax, ay, 8,6
delay 1
next
…
Cho v từ 0 đến 360*v (độ) bước nhảy 5
Tính toạ độ của điểm so với gốc O, góc bằng v, cách gốc là 2 sau đó đặt
tên điểm đó là A
Xố đối tượng
Vẽ đoạn thẳng từ ax, ay đến 8, 6
Độ trễ 1
end …
Hệ quả của góc
nội tiếp
function main
set_paper Paper, 5,0x0000FF
circle 1, 5, 3
appear Point, 1, 5, "O"
get_point bx, by, 1, 5, 180, 3
appear Point, bx, by, "B", leftbelow
get_point cx, cy, 1, 5, 0, 3
appear Point, cx, cy, "C", rightbelow
appear TSquare
move TSquare, ax, ay
for v from 0 to 180 step 2
get_point &ax, &ay, 1, 5, v, 3
appear Point, ax,ay, "M", right
set_paper Draft,3,0x000000
erase
note_angle 0, "", bx, by, ax, ay, cx, cy
get_angle &g, ax, ay, cx, cy
set_pos TSquare, ax, ay, g
set_paper draft, 3, 0xFF00FF
erase
line ax, ay, bx, by
line ax, ay, cx, cy
line bx, by, cx, cy
delay 1
next
appear TSquare
move TSquare, ax, ay
for v from 180 to 360 step 2
get_point &ax, &ay, 1, 5, v, 3
appear Point, ax,ay, "M", right
set_paper Draft,3,0x000000
note_angle 0, "", cx, cy, ax, ay, bx, by
get_angle &g, cx, cy,ax, ay
set_pos TSquare, ax, ay, g-90
set_paper draft, 3, 0xFF00FF
…
…
…
…
Tính toạ độ của điểm so với gốc 1,5, góc là 180 độ, cách gốc là 3 sau đó
đặt tên là B, chữ ở phía trái bên dưới điểm
…
…
Xuất hiện thước đo góc
Di chuyển thước đo góc đến toạ độ ax, ay
Cho v từ 0 đến 180 (độ), bước nhảy là 2
Tính toạ độ của điểm so với gốc 1,5, góc là v, cách gốc là 3
Xuất hiện điểm M tại vị trí vừa tính toạ độ
…
…
Đánh dấu góc vng
Tính độ lớn của góc g từ toạ độ ax, ay so với gốc cx, cy
Thiết lập sự biến đổi của thước đo góc theo toạ độ ax, ay và g
…
…
…
…
…
…
…
Từ đây trở xuống lặp lại các lệnh trên (màu xanh). Chỉ khác chút xíu ở chỗ ta
cho biến v thay đổi từ 180 độ đến 360 độ trong lệnh lặp và xoay lại e-ke để
khi nó di chuyển xuống dưới thì góc vng của e-ke vẫn ở phía trong (các
chỗ màu đỏ)
erase
line ax, ay, bx, by
line ax, ay, cx, cy
line bx, by, cx, cy
delay 1
next
end
Nét đứt
function main
set_paper Paper, 5, 0xFF00FF
appear Ruler,5,4
for t from -4 to 6
appear Pencil
attach_pen Pencil
for x from t to t+0.4 step 0.4
set_pos Pencil,x+9,4
next
t= t-0.1
delay 2
next
disappear Pencil
disappear Ruler
end
Chương trình này các bạn hồn tồn có thể “phiên dịch” theo từng dịng lệnh,
xin miễn cho tơi.thuyết minh phần này.
Đây là chương trình dùng hai nhóm lệnh lặp lồng vào nhau để mô phỏng việc
vẽ nét đứt (nét khuất). Vòng lặp thứ nhất (chữ đỏ) chứa vòng lặp thứ hai (chữ
xanh).
Vịng lặp xanh có tác dụng tạo ra các nét vẽ. Điều hướng nét vẽ (bạn tham
khảo thêm chương trình vẽ hình hộp chữ nhật để xem cách điều chỉnh các nét
khuất theo các hướng khác nhau)
Vòng lặp ngồi màu đỏ có tác dụng tạo ra các khoảng trống giữa các nét vẽ,
độ thưa của nét vẽ, độ dài tổng thể của cả đoạn
Đồ thị
function main
set_paper Paper, 5, 0x0000FF
appear Pencil
attach_pen Pencil
for x from -4.2 to 4.25 step 0.1
y= x*x
set_pos Pencil, 8+x,12 - y
delay 1
next
disappear Pencil
end
Đây là chương trình dùng vịng lặp để mơ phỏng cách vẽ đồ thị hàm số y =
x*x. Tuy nhiên trong file minh hoạ gửi kèm, tơi có dùng mơ dun vẽ đồ thị
hàm số để vẽ thêm một hệ trục toạ độ và các đường dóng toạ độ tương ứng
Đây là chương trình kết hợp giữa hiệu quả của 2 modun khác nhau trong
violet. Sau này các bạn nên để ý đến sự kết hợp tác dụng của nhiều modun
trong một bài giảng. Đó mới là tác dụng to lớn mà phần mềm VIOLET mang
lại cho chúng ta.
<b>2.5) Một số mã lệnh sử dụng các công cụ vẽ hình </b>
<b>Cơng cụ</b> <b>Mã lệnh cần khai báo</b> <b>Ý nghĩa</b>
<b>Thước kẻ(Rule)</b>
<b>A(x1;y1) , B(x2;y2)</b>
(các tọa độ cho
trước)
<b> set_paper duongthang, 3,0x0000FF</b>
<b>appear</b> <b>Point, x1,y1,A, below</b>
<b>appear</b> <b>Point, x2,y2,B, below</b>
<b>create_line</b> <b>(3*x1-x2)/2,(3*y1-y2)/2,</b>
<b>(3*x2-x1)/2,(3*y2-y1)/2</b>
<b>End</b>
<b>function main</b>
<b>Vẽ đoạn thẳng AB</b>
<b> set_paper doanthang, 3,0x0000FF</b>
<b>appear</b> <b>Point, x1,y1,A, below</b>
<b>appear</b> <b>Point, x2,y2,B, below</b>
<b>create_line</b> <b>x1,y1,x2,y2</b>
<b>End</b>
<b>function main</b>
<b> set_paper tia, 3,0x0000FF</b>
<b>appear</b> <b>Point, x1,y1,A, below</b>
<b>appear</b> <b>Point, x2,y2,B, below</b>
<b>create_line</b> <b>x1,y1,(3*x2-x1)/2,(3*y2-y1)/2</b>
<b>End</b>
- Xuất hiện điểm A(x1;y1) và điểm B(x2;y2)
- Dùng thước kẻ và bút chì để vẽ đường thẳng đi qua các tọa độ <b></b>
<b>(3.x1-x2)/2,(3.y1-y2)/2,(3.x2-x1)/2,(3.y2-y1)/2</b>
<b>Vẽ đường trịn</b>
<b>Compa</b>
<b>Vẽ đường trịn có </b>
<b>tâm O(x1.y1) , bán </b>
<b>kính r cho trước</b>
<b>function main</b>
<b>set_paper Draft,2,0xFF0000</b>
<b>appear Point,x1,y1,"O",left</b>
<b>appear Compa</b>
<b>move Compa,x1,y1,0</b>
<b>call Compa.OpenCompa,r</b>
<b>rotate_compa Compa,r,360</b>
<b>disappear Compa</b>
<b>end</b>
<b>Hoặc lệnh </b>
<b>function main</b>
<b>set_paper Draft,2,0xFF0000</b>
<b>appear Point,x1,y1,"O",left</b>
<b>- </b>Xuất hiện điểm O(x1;y1)
- Xuất hiện Compa ở tọa độ (0;0) ,
- Compa ở tọa độ (x1;y1) góc quay 00
- Độ mở của Compa tương ứng với bán kính r
- Compa quay với bán kính r với góc quay từ 00<sub> đến 360</sub>0<sub> . </sub>
Hoặc lệnh sau
- Xuất hiện điểm O(x1;y1)
<b>create_arc x1,y1,r,0,360</b>
<b>end</b>
<b>Sử dụng êke</b>
Vẽ đường thẳng đi
qua điểm (x1;y1)
vng góc với
đường thẳng a cho
trước
appear TSquare,x1,y1
move TSquare,x1,y1,angle+90
delay 6
move TSquare,cx,cy,angle+90
<b>- </b>Xuất hiện êke ở tọa độ (x1;y1)
- Ê ke trượt trên đường thẳng a , một cạnh eke đi qua điểm (x1;y1) cịn
đỉnh eke nằm trên đường thẳng a có tọa độ (cx;cy)
<b>- Thước đo góc </b>
<b>(Protracto)</b>
<b>Khai báo công cụ theo đường dẫn</b>
<i>C:\Program Files\Platin </i>
<i>ViOLET\Lecture\vpScript\Template\Measurer.swf</i>
<i>Tại ơ “Vị trí” ta nhập thêm “Mprot” để hiển thị eke</i>
<b>- </b>Xuất hiện thước đo góc ở vị trí có tọa độ (12;4)
- Bắt thước đo góc theo các cạnh của tam giác ABC , tâm thước đo góc
trùng với các đỉnh của tam giác .
<b>- Thước đo độ dài </b>
<b>(Ruler)</b> <b>appear MeasurerRuler, 10, 6, Ruler</b>
<b>Khai báo công cụ theo đường dẫn</b>
<i>C:\Program Files\Platin </i>
<i>ViOLET\Lecture\vpScript\Template\Measurer.swf</i>
<i>Tại ơ “Vị trí” ta nhập thêm “MRuler” để hiển thị </i>
<i>thước có vạch</i>
<b>- </b>Xuất hiện thước kẻ ở vị trí có tọa độ (10;6)
- Bắt thước đo độ dài các cạnh của tam giác ABC , vạch 0 của thước
trùng với các đỉnh của tam giác, thước nằm dọc theo cạnh của tam giác
<b>3) Cách chỉnh sửa hình mơ phỏng trong bài giảng Violet</b>
Khi thiết kế phần mơ phỏng , có thể dẫn đến phần mơ phỏng nằm ở vị trí khơng thuận lợi hoặc che mất một phần văn bản cùng xuất hiện trong
màn hình , do vậy ta cần chỉnh sửa nó để việc trình chiếu dễ quan sát và thuận lợi cho việc theo dõi của học sinh , cho nên ta cần tiến hành một đôi chút để
chỉnh sửa . Phần mơ phỏng xuất hiện trong bài giảng đều có dạng file ảnh , nên việc di chuyển ta dùng tổ hợp phím <i><b>Ctrl+ phím ←↑→↓ </b></i> để di chuyển .
Các bước làm : nhấp chuột vào nút chỉnh sửa , chọn tiếp tục , nhấp đúp vào hình mơ phỏng
Để di chuyển dùng tổ hợp phím <i><b>Ctrl + phím lên xuống ...</b></i>
Hoặc nhấn và giữ chuột vào một cạnh của tam giác ABC để di chuyển
<b>II) CÁCH ĐƯA PHẦN LẬP TRÌNH MƠ PHỎNG SẴN CĨ VÀO TRONG BÀI GIẢNG</b>
<b>1) Sử dụng các đoạn mã lệnh cho sẵn :</b>
Bước 1 : Copy đoạn mã lệnh và dán vào khung soạn thảo của lập trình mơ phỏng
Bước 2 : Chọn nút <i><b>“Tiếp tục”</b></i> để khai báo các lệnh dữ liệu và công cụ , rối chọn nút <i><b>“Đồng ý”</b></i> để kết thúc
Bước 3 : Chọn hiệu ứng xuất hiện , điều chỉnh hình mơ phỏng cho hợp với các nội dung khác
Ví dụ áp dụng : Vẽ ttia phân giác bằng thước đo góc
Đoạn mã lệnh Hình minh họa
Nhấn chuột vào đây
- Kéo vào(xuống) là thu nhỏ
hình
- Kéo ra (lên) là phóng to
hình
function main
line 8,1, 8.5,1
delay 36
set_paper Draft,3,0x0000FF
delay 6
create_line 6,8, 12,8
appear Point, 6,8, O, below
delay 12
appear Point, 12,8,"x",below left
appear Protractor,12,3
move Protractor,6,8
appear Pencil,12,3
move Pencil,7.32,5.3
appear Point, 7.32,5.3," "
delay 24
disappear Protractor, Pencil
create_line 6,8, 8.63,2.7
move Protractor, 6,8
appear Pencil, 15, 3
move Pencil, 8.54,6.41
appear Point, 8.54,6.41, ""
disappear Protractor, Pencil
set_paper Draft,3,0xFF0000
create_line 6,8, 10.24,5.35
appear Point,10.24,5.35,"z",below
note_Angle 0,"value",10,8,6,8,8.54,6.41
appear Compa, 10,4
move Compa, 6,8,32
call Compa.OpenCompa,0.7
rotate_compa Compa,0.7,64
disappear Compa
end
Lệnh khai báo có dạng
Hình sau khi nhấn nút đồng ý , chương trình tự chạy
Hình mơ phỏng nằm giữa trang màn hình Sau khi thu nhỏ và di chuyển về một bên màn hình
<b>2) Copy từ một bài giảng sẵn có để đưa vào bài giảng</b>
Trong một bài giảng , chỉ một phần bài giảng là có phần mơ phỏng , song để viết được một đoạn mã lệnh đưa vào bài giảng là điều khơng dễ . Cho
nên ta có thể sưu tầm một số bài giảng có phần mơ phỏng và copy chung đưa vào bài soạn . Sau đây tơi trình bày một cách đơn giản để thực hiện điều đó .
Bước 1 : Chọn bài giảng có chứa nội dung mơ phỏng
Bước 2 : Mở trang soạn thảo của bải giảng
Bước 3 : Mở bài giảng có nội dung cần copy , nhấp chuột vào nút chỉnh sửa , chọn nút <i>“Tiếp tục”</i>
Bước 4 : Nhấp chuột đúp vào hình mơ phỏng , trên hình xuất hiện 8 nút vng xung quanh , nhấn tổ hợp phím <i><b>Ctrl+C</b></i>
Bước 5 : Mở lại trang soạn thảo , nhấn tổ hợp phím <i><b>Ctrl+V . </b></i> Lúc này trên màn hình soạn thảo chứa tồn bộ nội dung của phần mơ phỏng . Trong
bước này toàn bộ mã lệnh và các lệnh khai báo đều được copy sang trang soạn thảo đầy đủ .
Như vậy trang màn hình vừa được copy sang sẽ chứa đầy đủ nội dung của trang gốc .