Lập trình mô phỏng với Violet script
BÀI 1: CÁC LỆNH XỬ LÝ ĐỐI TƯỢNG TRONG VIOLET SCRIPT
1. Lệnh appear
a. Cấu trúc: appear đối tượng, x, y
b. Chức năng: Xuất hiện đối tượng tại vị trí x, y
2. Lệnh disappear
a. Cấu trúc: disappear đối tượng
b. Chức năng: Làm cho đối tượng biến mất
c. Ví dụ: Đoạn mã mô phỏng xuất hiện và biến mất ba điểm A, B, C tại ba tọa độ tương ứng.
function main
appear Point, 11, 2, A
appear Point, 9, 4, B
appear Point, 14, 4, C
disappear PointA
disappear PointB
disappear PointC
end
Xem: Lệnh cơ bản - Point
3. Các đối tượng:
a. Pencil: Bút chì
Chức năng: Mô phỏng việc vẽ điểm.
Ví dụ: Đoạn mã mô phỏng việc vẽ ba điểm bằng bút chì
function main
appear Pencil,11,2
delay 10
appear Point, 11, 2, A
disappear Pencil
delay 10
appear Pencil,9,4
delay 10
appear Point, 9, 4, B
c. Tsquare: Ê ke
Chức năng: Mô phỏng việc vẽ đoạn thẳng, dượng đường vuông góc
Ví dụ: Mô phỏng việc dùng Ê ke thay cho thước thẳng để vẽ cạnh BC:
function main
appear Point, 11, 2, A
appear Point, 9, 4, B
appear Point, 14, 4, C
appear TSquare, 9,4,180
delay 40
disappear TSquare
end
Đặt êke ở điểm 9, 4 với góc quay 180
0
.
(để êke nằm dưới tam giác)
Xem: Lệnh cơ bản - TSquare
d. Protractor: Thước đo góc
Chức năng: Mô phỏng việc đo một góc
Ví dụ: Mô phỏng việc đặt thước để đo góc ABC
function main
appear Point, 11, 2, A
appear Point, 9, 4, B
appear Point, 14, 4, C
appear Protrator, 9,4
delay 40
disappear Protrator
end
Tâm của thước đo góc ở điểm (9,4)
Xem: Lệnh cơ bản - Protrator
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 2
Ví dụ2: Đoạn mã mô phỏng việc đặt Ê ke để vẽ đường cao AH
function main
appear Point, 11, 2, A
appear Point, 9, 4, B
appear Point, 14, 4, C
appear TSquare
move TSquare, 11, 4, 180
end
Với ba điểm A,B,C thì chân đường vuông góc
là 11,4
Xem: Lệnh cơ bản - Move TSquare
Ê ke đã được quay một góc 180 độ để phù hợp với việc vẽ đường cao AH.
5. Kết luận:
a. Khi thực hiện lệnh appear Point, x, y, A ta có một đối tượng là PointA. Vì thế có thể cho biến
mất điểm A bằng lệnh disappear PointA
b. Lệnh appear Point, x, y, A có thể có thêm tham số:
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 3
Lập trình mô phỏng với Violet script
left: trái
right: phải
above: Trên
below: Dưới để xác định vị trí ghi tên của điểm. Ngoài ra có thể kết hợp kiểu như leftbelow để
xác định vị trí ghi tên điểm là bên trái, phía dưới.
c. Có thể có thêm tham số góc quay để xoay đối tượng ngay khi xuất hiện.
d. Tên đối tượng do tên file hình ảnh của đối tượng qui định. Vì thế bạn có thể dùng But_chi thay
cho Pencil với điều kiện bạn phải đổi tên file Pencil. Thành But_chi. (file này nằm ở thư mục ...).
Tên các đối tượng phân biệt cả ở chữ hoa và chữ thường (Sẽ có lỗi nếu dùng pencil thay cho
Pencil).
e. Hệ trục tọa độ sử dụng VS :
Với (0,0) là điểm góc trên bên trái màn hình.
gt1 = n: n gạch (song song).
gt1 = -1: Không đánh dấu, chỉ ghi giá trị độ dài đoạn thẳng.
Thay “value” bằng “”: Không ghi số đo đoạn thẳng.
c. Ví dụ: Vẽ tam giác có ba đỉnh là A,B,C có đánh dấu các cạnh.
function main
appear Point, 11, 2, A, above
appear Point, 9, 4, B
appear Point, 14, 4, C
poly_line 11, 2, 9,4,14,4,11,2
note_edge 0, "value",11, 2, 9,4
note_edge 1, "value",9,4,14,4
note_edge 2, "value",14,4,11,2
end
Xem: Lệnh đồ họa -Polyline
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 5
Lập trình mô phỏng với Violet script
4. Lệnh note_angle
a. Cấu trúc: note_angle gt2,"value", x2,y2,x1,y1,x3,y3
b. Chức năng: Đánh dấu và hiển thị độ lớn một góc có tọa độ hai điểm nằm trên cạnh thứ nhất là
x2,y2; đỉnh là x1,y1 và điểm trên cạnh thứ hai là x3, y3.
Với gt2 = 0: Gạch đơngt2 = 1: Gạch đơn + chéo gt2 = 2: Gạch đôi
gt2 = 3: Gạch đôi + chéo. Thay “value” bằng “” : Không ghi số đo góc.
gt2 = 4: Gạch ba. gt2 = -1: Không kí hiệu, chỉ ghi giá trị số đo góc.
c. Ví dụ: Vẽ tam giác có ba đỉnh là A,B,C có đánh dấu các góc.
function main
appear Point, 11, 2, A,above
appear Point, 9, 4, B
appear Point, 14, 4, C
poly_line 11, 2, 9,4,14,4,11,2
note_angle 0, "value",9,4,11, 2, 14,4
Di chuyển bút chì đến điểm C (14,4)
(Khi bút chì di chuyển để lại vết vẽ là đoạn thẳng
BC).
Xem: Lệnh đồ họa - attach_pen
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 6
Lập trình mô phỏng với Violet script
6. Lệnh deattach_pen
a. Cấu trúc: deattach_pen đối tượng
b. Chức năng: Gỡ điểm gắn ra khỏi đối tượng. (Khi di chuyển sẽ không để lại vết)
7. Lệnh circle
a. Cấu trúc: circle x, y, r
b. Chức năng: Vẽ đuờng tròn tâm (x,y) bán kính r.
8. Lệnh erase
a. Cấu trúc: erase đối tượng
b. Chức năng: Xóa nội dung của đối tượng
9. Lệnh For ... next
a. Cấu trúc:
For biến from a to b step c
các lệnh
next
b. Chức năng: Thực hiện khoảng (b - a) :c vòng lặp các lệnh theo kiểu:
b1: gán a cho biến.
b2: Nếu b > a (b < a nếu c < 0) thì thực hiện các lệnh ngược lại thoát khỏi vòng lặp.
b3: Cộng biến với c và quay lại bước b2
Ví dụ: Đoạn mã mô phỏng việc vẽ đồ thị hàm số y = (x-2)(x-1)x(x+1)(x+2)
function main
x0= 8
y0 = 6
line 8,0, 8,12
line 0,6,16,6
trang ta đã tạo nên một trang mới. Các trang này “trong suốt” và chồng lên nhau. Khi thực hiện
lệnh erase tên trang ta thực hiện xóa tất cả các đối tượng trên trang này.
b. Chú ý rằng thứ tự ba điểm dùng để xác định góc cần đánh dấu là quan trọng. Nếu không chú ý
thứ tự, thay vì đánh dấu góc α sẽ đánh dấu góc 360 - α
c. Có thể attach_pen các đối tượng Pencil, Compa hoặc bất kỳ đối tượng nào nhưng cần chỉ rõ
điểm đặt bút bằng lệnh Set_pos. Một điểm cũng có thể trở thành đối tượng để attach_pen sau khi
đã appear nó (xem bài 1).
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 8
Lập trình mô phỏng với Violet script
BÀI 3: CÁC LỆNH XỬ LÝ TƯƠNG TÁC (VỚI NGƯỜI DÙNG)
1. Lệnh input_line
a. Cấu trúc: input_line &x1, &y1, &x2, &y2
b. Chức năng: Cho phép nhập đoạn thẳng bằng cách nhấp (ở điểm đầu) và kéo chuột (đến điểm
cuối).
Tọa độ điểm được lưu vào x1, y1, x2, y2. Đây là các tham biến nên phải dùng &x1, &y1, &x2,
&y2. Mỗi lần kéo, thả chuột thì x1, y1, x2, y2 thay dổi.
c. Ví dụ: Đoạn mã mô phỏng việc vẽ một đoạn thẳng bằng cách kéo chuột từ điểm A đến điểm B
function main
appear Text, 12, 1, "Kéo chuột để vẽ
một đoạn thẳng"
input_line &x1, &y1, &x2, &y2
appear Point, x1,y1, A
appear Point, x2,y2, B
line x1, y1, x2, y2
end
Xem: Các lệnh nhâp - input_line
2. Lệnh input_Point
a. Cẩu trúc: Input_Point &x1, &y1
b. Chức năng: Cho phép nhập một điểm bằng cách nhấp chuột
c. Ví dụ: Đoạn mã sau cho phép bạn kích chuột để vẽ một tam giác.
a. Cấu trúc: set_drag đối tượng, true/false
b. Chức năng: Thiết lập đối tượng cho phép kéo thả (có/ không).
c. Ví dụ:
Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 10