Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
258,5 KB
Nội dung
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 disappear Pencil delay 10 appear Pencil,14,4 delay 10 appear Point, 14, 4, C disappear Pencil end Xuất hiện bút chì tại điểm 11,2 Trễ (đợi) 10 giây Vẽ điểm A Ẩn bút chì . Xem: Lệnh cơ bản - Pencil Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 1 Lập trình mô phỏng với Violet script b. Ruler: Thước thẳng, thước đo Chức năng: Mô phỏng việc vẽ, đo một đoạn thẳng Ví dụ: Đoạn mã mô phỏng việc đặt thước để vẽ, đo cạnh BC function main appear Point, 11, 2, A appear Point, 9, 4, B appear Point, 14, 4, C delay 10 appear Ruler, 9, 4 delay 10 disappear Ruler end Xuất hiện thước ở điểm 9,4 (Điểm 0 của thước ở điểm 9,4) Xem: Lệnh cơ bản - Ruler 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 Lập trình mô phỏng với Violet script e. Burin: Dao cắt giấy Chức năng: Mô phỏng việc cắt giấy trong các thao tác cắt, ghép hình f. Compa: Chức năng: Mô phỏng việc vẽ cung, đường tròn. 4. Lệnh move a. Cấu trúc: Move đối tượng, x, y, góc quay b. Chức năng: Di chuyển đối tượng đến vị trí mới và thực hiện quay đối tượng một góc bằng góc quay: Ví dụ1: Đoạn mã mô phỏng việc vẽ ba điểm A,B,C bằng bút chì. Sau khi vẽ xong điểm này thì di chuyển đến điểm kia. function main appear Pencil move Pencil, 11,2 appear Point, 11, 2, A delay 10 move Pencil, 9, 4 appear Point, 9, 4, B delay 10 move Pencil, 14,4 appear Point, 14, 4, C delay 10 move Pencil, 0, 0 disappear Pencil end Di chuyển bút chì đến điểm 11,2 Vẽ điểm A Di chuyển bút chì đến điểm 9,4 Vẽ điểm B Xem: Lệnh cơ bản - Move Pencil 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. Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 4 0,0 16,0 0,12 Lập trình mô phỏng với Violet script BÀI 2: CÁC LỆNH ĐỒ HỌA 1. Lệnh line a. Cấu trúc: Line x1,y1,x2,y2 b. Chức năng: Vẽ đoạn thẳng có tọa độ hai điểm đầu mút là x1,y2 và x2,y2 c. Ví dụ: Vẽ tam giác có ba đỉnh là A,B,C function main appear Point, 11, 2, A, above appear Point, 9, 4, B appear Point, 14, 4, C line 11, 2, 9,4 line 9,4, 14, 4 line 14, 4, 11, 2 end Vẽ điểm A và đặt tên điểm phía trên. Vẽ cạnh AB Xem: Lệnh đồ họa - Line 2. Lệnh Poly_line a. Cấu trúc: Poly_line x1, y1, x2, y2, x3, y3, x1, y1 b. Chức năng: Vẽ đường gấp khúc đi qua các điểm có tọa độ x1, y1, x2, y2, x3, y3, x1, y1. 3. Lệnh note_edge a. Cấu trúc: note_edge gt1, "value", x1, y1, x2, y2 b. Chức năng: Đánh dấu và hiển thị độ dài một đoạn thẳng có tọa độ hai điểm dầu mút là x1,y1 và x2, y2. Với gt1 = 0: Một gạch gt1 = 1: Hai gạch chéo gt1 = 2: Hai gạch song song 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 note_angle 1, "value",11,2,14,4,9,4 note_angle 2, "value",14,4,9,4,11,2 end Xem: Lệnh đồ họa - note_angle 5. Cặp lệnh attach_pen + Set_pos a. Cấu trúc: attach_pen đối tượng set_pos đối tượng, x, y b. Chức năng: Gắn bút cho đối tượng. Sau lệnh này, khi di chuyển đối tượng thì điểm gắn bút sẽ để lại vị trí (dấu vết) đã đi qua. c. Ví dụ: Mô phỏng việc vẽ cạnh BC của tam giác ABC function main appear Point, 11, 2, A appear Point, 9, 4, B appear Point, 14, 4, C appear Ruler move Ruler, 9, 4 appear Pencil move Pencil, 9 , 4 set_paper Paper, 3, 0xFF00FF attach_pen Pencil set_pos Pencil, 9, 4 move Pencil, 14, 4 disappear Ruler disappear Pencil end Vẽ ba điểm A, B, C Xuất hiện và di chuyển thước đến B(9,4) Xuất hiện và di chuyển bút chì đến B(9,4) Định trang vẽ Gắn bút và đinh tọa độ điểm gắn 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 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 3 next end Vị trí đặt gốc tọa độ Vẽ hai trục tọa độ Chọn màu cho đồ thị Vòng lặp với bước nhảy 0.05 để xác định và tọa độ và vẽ các điểm thuộc đồ thị hàm số trong đoạn -2.2 đến 2.4 Xem: Lệnh đồ họa - For .next Theo công thức biến đổi tọa độ từ hệ trục này sang hệ trục kia khi đổi gốc tọa độ X = x - x 0 => x = X + x 0 Y = y - y 0 => y = Y + y 0 . Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 7 Lập trình mô phỏng với Violet script 10. Kết luận: a. Lệnh set_paper Paper cho phép định màu nét vẽ và nhiều thứ khác. Sau mỗi lệnh Set_paper tên 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. function main appear Text, 12, 1, "Hãy kích chuột để chọn điểm thứ nhất", 4 Input_point &x1, &y1 appear Point, x1, y1, A appear Text, 12, 1, "Hãy kích chuột để chọn điểm thứ hai", 4 Input_point &x2, &y2 appear Point, x2, y2, B appear Text, 12, 1, "Hãy kích chuột để chọn điểm thứ ba", 4 Input_point &x3, &y3 appear Point, x3, y3, C poly_line x1, y1, x2, y2,x3,y3,x1,y1 note_angle 0, "value", x2, y2,x1, y1,x3,y3 note_angle 1, "value", x1, y1,x3,y3, x2, y2 note_angle 2, "value",x3,y3, x2, y2, x1, y1 end Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 9 Lập trình mô phỏng với Violet script 3. Lệnh input_data a. Cấu trúc: input_data tiêu đề chung, tiêu đề mục 1, tham số 1, . . . .tiêu đề mục n tham số n b. Chức năng: Cho phép nhập n mục số liệu vào n biến c. Ví dụ: Đoạn mã mô phỏng việc vẽ đoạn thẳng bằng cách nhập tọa độ hai điểm đầu mút. function main input_data "Nhập toạ độ hai điểm đầu mút", "HĐ điểm A",xa, "TĐ điểm A",ya, "HĐ điểm B",xb,"TĐ điểm B",yb appear Point, xa,ya, A, above appear Point, xb,yb, B creat_line xa,ya,xb,yb end 4. Lệnh set_drag 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 [...]... trình mô phỏng với Violet script cut_polygon px1, py1, px2, py2 Cắt Tamgiac bằng cut_polygon Move_polygon Tamgiac2,-180,-3,1,7,3 Di chuyển Tamgiac2 sao cho C về input_line &px1, &py1, &px2, &py2 A và quay -1800 clip px1, py1, px2, py2 Cắt Tamgiac1 bằng clip Move_polygon Tamgiac12, 180,3,1,7,3 Di chuyển Tamgiac12 sao cho B end về A và quay 1800 Xem Chương trình con - cut_polygon Trong Violet cũng có một... note_edge 1, "value", x1,y1,x3,y3 note_angle 0,"value", x2,y2,x1,y1,x3,y3 end Ví dụ 2: Mô phỏng việc vẽ tam giác khi biết độ dài ba cạnh Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 11 Lập trình mô phỏng với Violet script function main input_data "Nhập ba cạnh cạnh của tam giác ", "BC=",BC,"AB=",AB, "AC=",AC x1 = 6 y1 = 10 appear Point, x1,y1, B get_point &x2, &y2, x1, y1, 0, BC appear Point, x2,y2,C angleB =... , 4 set_paper Paper, 3, 0xFF00FF attach_pen Pencil Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Vẽ ba điểm A, B, C Xuất hiện và chuyển thước đến B Xuất hiện và di chuyển đến B Trang 12 Lập trình mô phỏng với Violet script set_pos Pencil, 9, 4 move Pencil, 14, 4 get_angle &angle, 9,4,11,2 move Ruler,9,4,angle move Pencil, 9,4 attach_pen Pencil set_pos Pencil, 9, 4 move Pencil, 11,2 get_angle &angle, 11,2,14,4... ngang có góc là 90 + angle1) Vẽ trung trực của AB 3 Lệnh: get_perpendicular a Cấu trúc: get_perpendicular &x, &y,x1,y1,x2,y2,x3,y3 Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 13 Lập trình mô phỏng với Violet script b Chức năng: Tọa độ chân đường vuông góc hạ từ x1,y1 xuống đường thẳng xác định bởi hai điểm x2,y2,x3,y3 c Ví dụ: Mô phỏng việc vẽ đường cao AH của tam giác ABC function main appear Text, 12,... hai", 4 Input_point &x2, &y2 appear Point, x2, y2, B appear Text, 12, 1, "Hãy kích chuột để chọn điểm thứ ba", 4 Input_point &x3, &y3 Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 14 Lập trình mô phỏng với Violet script appear Point, x3, y3, C appear Text, 12, 1, "Đây là tam giác cần vẽ", 4 poly_line x1, y1, x2, y2,x3,y3,x1,y1 get_angle &angleB1, x1,y1,x2,y2 get_angle &angleB3, x3,y3,x2,y2 angleB=(angleB1 -... BC appear Point, x2,y2,C Lấy một điểm nằm trên BA get_intersection1 &x5, &y5,x1, y1, x3, y3, Lấy một điểm nằm trên CA x2,y2,x4,y4 Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 15 Lập trình mô phỏng với Violet script appear Point, x5,y5,A,above poly_line x1,y1, x2,y2, x5, y5, x1, y1 end Lấy giao điểm hai đường thẳng chứa BA và CA ( được A) Vẽ điểm A Vẽ tam giác ABC Xem: Các lệnh tính toán - get_intersectoin1... đường tròn) Lấy góc tạo bởi điểm B với O Lấy góc tạo bởi điểm O với A Cho điểm M chạy trên đường tròn từ B đến A Lấy đoạn MQ = 8 Lấy MH = 7 Đặt giấy nháp để xóa sau này Trang 16 Lập trình mô phỏng với Violet script poly_line x,y,xp,yp,xq,yq,x,y note_angle 0, "", x1,y1, x,y,x2,y2 delay 1 next appear Text, 5,0, "Hãy xem dấu vết M để lại" for angle from goc2+180 to goc1 step -1 get_point &x, &y, 8,4,angle,... tam giác Vẽ tam giác Đánh dấu góc M Cho M chạy ngược lại Cho M để lại vết Cho M chạy từ B đến A trên đường tròn đối xứng với (O) qua AB để tìm phần quỹ tích còn lại Trang 17 Lập trình mô phỏng với Violet script poly_line x,y,xp,yp,xq,yq,x,y note_angle 0, "", x2,y2, x,y,x1,y1 delay 1 next appear Text, 5,0, "Hãy xem dấu vết M để lại" for angle from goc2-180 to goc1 step 1 get_point &x, &y, 8,8,angle,... get_intersection2 BÀI 5: CÁC LỆNH XỬ LÝ ĐA GIÁC 1 Lệnh Polygon a Cấu trúc: Polygon dg, x0,y0 , xxxxxxxx, x1,y1, x2,y2, x3,y3 xn,yn Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 18 Lập trình mô phỏng với Violet script b Chức năng: Vẽ đa giác có tên dg tại vị trí x0,y0 có màu xxxxxxxx và có tọa độ các đỉnh là x1,y1, x2,y2, x3,y3 xn,yn c Ví dụ: Vẽ hai hình vuông Hình vuông 1 màu xanh và hình vuông 2 màu... 2 Lệnh unify a Cấu trúc: unify đa giác 1, đa giác 2 b Chức năng: Hợp đa giác 1 và đa giác 2 thành một đa giác có tên là đa giác 1 Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 19 Lập trình mô phỏng với Violet script c Ví dụ: Mô phỏng việc hợ hai hình vuông thành một đa giác Sau đó chỉ di chuyển hình vuông 1 nhưng cả khối đa giác di chuyển theo function main x0 = 2 y0 = 2 polygon Square1, x0, y0, 0x7F7FFF, . 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. Pencil Lê Nho Duyệt - Phòng GD&ĐT Quế Sơn Trang 1 Lập trình mô phỏng với Violet script b. Ruler: Thước thẳng, thước đo Chức năng: Mô phỏng việc vẽ, đo một