Ở ngoài thực tế, hướng đi của bóng sau khi chạm vật cản có thể chịu ảnh hưởng của rất nhiều yếu tố khác nhau. Tuy nhiên, để chương trình không trở nên phức tạp, trong bài này, chúng ta sẽ chỉ cho hướng đi của bóng chịu ảnh hưởng của góc mà bóng bay đến thanh đỡ
Góc là gì
Góc là hình gồm 2 tia chung gốc.
Đơn vị của góc là độ. Người ta quy ước 1 tên gọi của một số góc cùng với độ lớn của nó như góc bẹt (góc tạo bởi 2 tia đối nhau) có độ lớn 180 độ, góc vuông (góc tạo bởi 2 tia đối xứng nhau) có độ lớn 90 độ
Để đọc kĩ hơn về góc, các bạn có thể tham khảo sách giáo khoa Toán lớp 6.
Mô phỏng hướng bay của quả bóng
Để mô phỏng việc quả bóng bật ra sau khi chạm vật cản, chúng ta sẽ cố gắng làm cho hướng bóng bay ra khỏi vật cản đối xứng với hướng bóng bay tới vật cản qua phương thẳng đứng.
Ví dụ trong hình dưới, góc tạo bởi hướng bóng bay tới và phương thẳng đứng và góc tạo bởi hướng bóng bật ngược lại và phương thẳng đứng là 2 góc đối xứng nhau.
Chúng ta có thể tưởng tượng 2 góc đối xứng bằng cách xem đường ở giữa như gáy của quyển vở. Khi gập quyển vở lại, nếu 2 đường trùng khít với nhau thì có nghĩa là 2 đường đó cùng với gáy trang vở tạo ra 2 góc đối xứng.
Các bạn có thể chơi thử trò chơi này để hiểu hơn về khái niệm trên.
Công thức tính góc bóng bật ngược lại từ góc bay đến của bóng
Do góc bay đến của bóng và góc xanh lá gộp lại tạo thành một góc bẹt, nên ta có
Góc xanh lá + Góc bay đến của bóng = 180
Điều này tương đương với Góc xanh lá = 180 – Góc bay đến của bóng (1)
Ngoài ra, do góc bóng bật ngược lại và góc xanh lá đối xứng nhau qua phương thẳng đứng, ta có Góc bật ngược lại = Góc xanh lá (2)
Kết hợp ý (1) và (2), chúng ta suy ra được Góc bật ngược lại = 180 – Góc bay đến của bóng
Viết chương trình trên Scratch
Từ công thức trên, chúng ta có thể viết phần định nghĩa khi chạm thanh đỡ của bóng như sau:
Sửa lỗi
Sau khi thêm khối lệnh trên vào bóng, bóng có thể bị lỗi như hình dưới đây:
Giải thích nguyên nhân lỗi: Trong trường hợp đặc biệt này, khi bóng đập sâu xuống thanh đỡ ở một góc nhất định, dù đổi hướng và di chuyển thì bóng vẫn chưa vượt ra hẳn và vẫn chạm vào một phần thanh đỡ. Khi đó bóng lại tiếp tục đổi hướng và di chuyển, cứ lặp lại liên tục như thế nên bóng chạy giật trên thanh đỡ.
Mong muốn của chúng ta là khi bóng đập vào thanh đỡ thì bật lên luôn. Để làm như vậy thì sau khi đổi hướng chúng ta phải cho bóng tiếp tục di chuyển đến khi không còn chạm vào thanh đỡ nữa. Để làm điều đó, chúng ta thay đổi chương trình của bật lại khi chạm thanh đỡ thành như sau:
Và thế là chúng ta đã mô phỏng việc bóng bật ra sau khi chạm thanh đỡ thành công! Để xem chi tiết hơn về cách bóng được lập trình, tham khảo ở đây
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
— — —
📧Email: hello@steamforvietnam.org
🌐Website: www.steamforvietnam.org
🌐Fanpage: STEAM for Vietnam
📺YouTube: http://bit.ly/S4V_YT
🌐Zalo: Zalo Official