Nội dung chính
Mswlogo làm hình động.
Để tạo hiệu ứng chuyển động trong Mswlogo thì cách đơn giản nhất là bắt chước như làm phim hoạt hình, vẽ liên tục các ảnh khác nhau rồi cho nó chiếu – hiển thị – từng hình một:Ví dụ
Repeat 360 [Repeat 4 [Fd 100 Rt 90] Rt 1 Clean]
Trong ví dụ trên hình vuông sẽ được vẽ sau đó rùa xoay phải 1 độ và lệnh Clean sẽ xóa màn hình nhưng không thay đổi vị trí và góc rùa, lặp lại quá trình vẽ, xoay, xóa liên tục ta được hiệu ứng chuyển động xoay tròn của hình vuông
Cũng ví dụ trên sử dụng lệnh PE để xóa nét vẽ rồi vẽ lại ở vị trí khác. Trong ví dụ này ta phải thêm lệnh wait vào, nếu không máy sẽ chạy rất nhanh và bạn không thể thấy được chuyển động. Lệnh PENNORMAL sẽ thiết lập rùa về trạng thái ban đầu, nếu bạn sử dụng màu sắc cho nét vẽ thì dùng lệnh PENPAINT viết tắt PPT để thiết lập lại rùa thoát khỏi chế độ xóa.
Repeat 360 [Repeat 4 [Fd 100 Rt 90] Wait 10 PE Repeat 4 [Fd 100 Rt 90] PENNORMAL Rt 1 Clean]
Bài tập: Dùng Mswlogo mô phỏng chuyển động của hình lục giác sau :
Sau đây là gợi ý cách giải của thầy Nguyễn Lộc
TO A
CS SETPC [0 255 0]
REPEAT 6[REPEAT 3[FD 100 RT 360/3] RT 360/6]
END
TO B
LT 360/6 FD 100 RT 360/6
SETPC [255 0 0]
FD 100 RT 360/3 FD 100
PU FD 100 LT 360/3 PD
FD 100 LT 360/3 FD 100 RT 360/6
REPEAT 3[FD 100 RT 360/3]
RT 360/6
REPEAT 3[FD 100 RT 360/3]
PU RT 360/6 BK 100 LT 360/6 PD
END
TO C
PE FD 100 RT 360/3 FD 100
PU FD 100 LT 360/3 PD
FD 100 LT 360/3 FD 100 RT 360/6
REPEAT 3[FD 100 RT 360/3]
RT 360/6
REPEAT 3[FD 100 RT 360/3]
PPT
SETPC [255 0 0]
RT 360/6
FD 100 RT 360/3 FD 100
PU FD 100 LT 360/3 PD
FD 100 LT 360/3 FD 100 RT 360/6
REPEAT 3[FD 100 RT 360/3]
RT 360/6
REPEAT 3[FD 100 RT 360/3]
PU RT 360/6 BK 100 LT 360/6 PD
END
TO LucGiacXoay
A B C
REPEAT 600[C WAIT 10]
END
Cách giải của emyeutinhoc.com
Cách giải khác, cách này sử dụng biến mảng lưu giữ lại tọa độ 6 đỉnh của lục giác ứng với mỗi đỉnh thì rùa phải xoay một góc tương ứng để vẽ ra lục giác màu đỏ. Việc này được thực hiện bởi chương trình Kt biến của nó chính là vị trí đỉnh của lục giác.
To Kt :k
PU Home
If :k=1 [ SetPos :A1 RT 30]
If :k=2 [ SetPos :A2 RT 90]
If :k=3 [ SetPos :A3 RT 150]
If :k=4 [ SetPos :A4 LT 150]
If :k=5 [ SetPos :A5 LT 90]
If :k=6 [ SetPos :A6 LT 30]
END
To LucGiac ;Vẽ và lấy tọa độ 6 đỉnh lục giác xanh
FD 100 RT 360/6 Make “A1 Pos
FD 100 RT 360/6 Make “A2 Pos
FD 100 RT 360/6 Make “A3 Pos
FD 100 RT 360/6 Make “A4 Pos
FD 100 RT 360/6 Make “A5 Pos
FD 100 RT 360/6 Make “A6 Pos
SetPos :A6 SetPos :A3 SetPos :A4 ;Nối các đường chéo
SetPos :A1 SetPos :A2 SetPos :A5
End
To LucGiacDo ; Vẽ lục giác màu đỏ
SETPENCOLOR [255 0 0]
Repeat 4 [fd 100 rt 360/6]
LT 60 BK 100 RT 60
TamGiac
RT 60 FD 100 LT 120
TamGiac
End
To TamGiac
Repeat 3 [Fd 100 Rt 360/3]
End
To LucGiacXoay
Ht Cs PPT
SETPENSIZE [2 2]
SETPENCOLOR [0 0 255]
Rt 30 LucGiac
Repeat 100 [
For [i 1 6 1] [
KT :i
PD PPT Lucgiacdo
Wait 5 KT :i PE
Lucgiacdo
] ;FOR
] ;Repeat
End
to happywheels1
circle 100 repeat 12[fd 100 lt 90 circle2 20 rt 90 bk 100 rt 30]
clean rt 2 wait 1
end
to happywheels
repeat 180[happywheels1]
end
Quay chưa được đẹp lắm thầy ạ, còn giựt.
mình có nhận xét một tí cho bạn
sao khi mình vẽ , thì nó quay rất nhanh nên ko thể phân biệt được hình dạng mình nghĩ là bạn nên cho wait nhiều hơn như 5, 9, 10 lần chẳng hạn
chứ quay nhanh như thế không thể phân biệt được
mình thấy ad nói mình thấy quay nhanh quá kết cấu của hình chưa được đẹp lắm
bạn nhớ chỉnh sửa chỉ tiết lại nhé
đó là những ý kiến đơn giản của mình thôi chào bạn
thank you
mình đã thành công nhưng chỉ được cách hình vuông chuyển động thôi
nếu ad có cách giải thích dễ hiểu mà ngắn gọn hơn một chút thì tốt ạ
vì m.n nhìn hình lục giác theo hướng khác nên mới ra hình vuông đó thui
mình thấy hình vuông quay hơi giật
hay qua di
thầy ơi hướng dẫn em làm tam giác sierpinski
Bạn tham khảo code của người ta nhé
thầy ơi hướng dẫn em vẽ trái đất xoay quanh Mặt Trời được không ạ!
Vẽ đơn giản thì dễ lắm một cái hình tròn màu xanh quay xunh quanh cái hình màu vàng, nhưng để đẹp và giống thì không đơn giản ^^. Bây giờ người ta chuyển hết qua Scratch và IC3 rồi nhé.