Tô màu trong Scratch – Có nhiều cách và đôi khi chỉ cần tương đối
Trong python thì có lệnh tô màu (fill) nhưng trong Scratch thì hoàn toàn không có lệnh tô màu vì thế muốn tô màu trong Scratch buộc ta phải thực hiện thủ công, và đôi khi nếu nhìn bằng mắt thì đúng là hình đã được tô màu, còn nếu “soi” kĩ code thì có vẻ như bản chất nó không còn chính xác nữa hãy cùng tìm hiểu kĩ qua ví dụ tô màu hình tam giác ngay nào
Làm thế nào để tô màu một hình trong Scratch
Các bạn hãy hình dung mình vẽ tam giác ra giấy rồi dùng bút tô màu tam giác như thế nào thì mình làm trong Scratch y như thế, có điều là ta không tô “lung tung” được vì rất khó lập trình mà phải “đưa đi đưa lại” cho có thuật toán.
Thể hiện bằng lời nói rất là khó nên ta cùng xét ví dụ cụ thể cho dễ hiểu
Một vài kĩ thuật tô màu trong Scratch
Kỹ thuật xoắn ốc
Kỹ thuật này hết sức đơn giản như sau:
Bây giờ bạn hãy cho biến a giảm ít lại (1 thôi chẳng hạn) bạn sẽ được kết quả:
Có bạn nói bản chất đây không phải là cách tô màu tam giác, đúng rồi nhưng mình nghĩ với các em tiểu học thì chấp nhận được.
Kỹ thuật này mình có dùng ở đây, bạn đừng thắc mắc là sao mỗi lần code lại khác nhau thế, quả thật đúng là như vậy lập trình trong Scracth rất “sáng tạo” ngay khi mình vừa làm xong, bảo mình làm lại nó lại hơi khác chút rồi
Kỹ thuật vẽ hình lồng nhau thu nhỏ dần
Ở đây mình vẽ các tam giác đều nhỏ dần, mình để biến a mỗi lần giảm đi -10 đề các tam giác thưa ra cho các bạn hiểu ý đồ. bạn hãy đổi nó thành -1 sẽ thấy tô kín ngay.
Kỹ thuật lưu lại tọa độ biên và nối các đoạn thẳng
Nôm na ý tưởng này như sau:
Giả sử ta đang đứng ở đỉnh A, ta sẽ vẽ các đoạn thẳng từ A tới điểm nằm trên BC, hình dung nếu các điểm trên BC dày đặc thì sẽ tạo ra hiệu ứng tô màu.
Muốn làm được điều này ta phải lưu lại tọa độ các điểm trên BC, ta dùng hai danh sách X, Y để lưu hoành độ và tung độ tương ứng của các điểm, sau đó từ vị trí A nhảy tới các điểm, nhảy lại A rồi lại từ A nhảy tới các điểm khác.
Mình họa như sau:
Cách này tương đối khó nên không khuyến khích các bạn nhỏ sử dụng.
Các bạn còn cách nào khác vui lòng comment chia sẻ nào