Bỏ qua để đến nội dung

Scratch: Vẽ hoa văn với bút vẽ (Pen)

Chuyên đề này nối tiếp Vẽ các hình cơ bản với bút vẽ - thay vì vẽ một hình đơn lẻ, ta lặp lại một hình hoặc một đường nhiều lần, mỗi lần xoay đi một góc nhỏ quanh một tâm chung, để tạo ra hoạ tiết đối xứng nhiều cánh (hoa văn). Gồm 2 phần: ôn nguyên lý chung, sau đó thực hành 10 bài tăng dần độ khó - từ toả tia, xoay hình, kết hợp nhiều kỹ thuật, đến hoa văn xoắn ốc và một bài phỏng theo đúng đề thi Tin học trẻ thật.

Phần 1 - Lý thuyết: Nguyên lý vẽ hoa văn

Phần tiêu đề “Phần 1 - Lý thuyết: Nguyên lý vẽ hoa văn”

Điều kiện để hoa văn khép kín một vòng tròn đầy

Phần tiêu đề “Điều kiện để hoa văn khép kín một vòng tròn đầy”

Đây là công thức quan trọng nhất, áp dụng cho mọi hoa văn xoay quanh một tâm:

Nếu lặp lại một đơn vị (một tia, một hình) n lần, mỗi lần xoay thêm α độ so với lần trước, hoạ tiết sẽ khép kín đúng một vòng tròn (không hở, không chồng lặp lên chính nó) khi và chỉ khi:

n × α = 360° (hoặc một bội số của 360°)

Ví dụ: lặp 36 lần, mỗi lần xoay 10° (36 × 10 = 360) - hoặc lặp 24 lần, mỗi lần xoay 15° (24 × 15 = 360). Chọn n lớn (nhiều lần lặp, góc xoay nhỏ) cho hoạ tiết dày, mịn; chọn n nhỏ cho hoạ tiết thưa, dễ nhận ra từng cánh.

Kỹ thuật A - Toả tia từ tâm: đứng tại một điểm tâm cố định, vẽ một đường (hoặc một hình) đi ra ngoài, sau đó quay lại đúng tâm rồi xoay một góc trước khi vẽ tiếp. Dùng khối đi tới điểm x: (0) y: (0) để đảm bảo luôn quay đúng về tâm.

Kỹ thuật B - Xoay hình quanh tâm: vẽ một hình khép kín (hình vuông, tam giác đều, hình tròn…) xuất phát từ tâm. Vì hình khép kín tự động đưa sprite quay về đúng vị trí và hướng ban đầu sau khi vẽ xong (tổng góc xoay quanh hình luôn là 360°, xem lại quy tắc góc quay), nên không cần khối đi tới để quay lại tâm - chỉ cần xoay thêm một góc rồi vẽ hình tiếp theo.

Kết hợp thêm chọn bút màu (đặt màu gốc, trước vòng lặp) và thay đổi [màu sắc v] bút một lượng (bên trong vòng lặp) để mỗi tia/hình có một màu hơi khác nhau, tạo hiệu ứng cầu vồng thay vì một màu đơn điệu.

chọn bút màu (#ff8c1a)
lặp lại (36)
vẽ 1 đơn vị hoạ tiết :: custom
thay đổi [màu sắc v] bút một lượng (10)
end

Mỗi bài dưới đây giả sử sân khấu có kích thước 480 × 360 (toạ độ x từ -240 đến 240, y từ -180 đến 180), tâm hoạ tiết đặt tại gốc toạ độ (0, 0). Bấm “Xem lời giải” để đối chiếu sau khi đã tự làm thử.

Vẽ hoạ tiết gồm 36 tia thẳng dài 100 bước, cùng xuất phát từ tâm (0, 0), mỗi tia cách nhau 10°.

Xem lời giải

Dùng kỹ thuật A - toả tia từ tâm: đặt bút, vẽ một tia, nhấc bút, quay lại đúng tâm, xoay 10° rồi lặp lại. 36 × 10 = 360 nên hoạ tiết khép kín một vòng tròn đầy.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
lặp lại (36)
đặt bút
di chuyển (100) bước
nhấc bút
đi tới điểm x: (0) y: (0)
xoay @turnRight (10) độ
end

Vẽ lại hoạ tiết ở Bài 1, nhưng mỗi tia có một màu hơi khác tia trước, tạo hiệu ứng cầu vồng toả ra từ tâm.

Minh hoạ bằng một dải màu tiêu biểu - chương trình thật đổi màu mượt và liên tục hơn.
Xem lời giải

Hình dạng giống hệt Bài 1 - chỉ thêm chọn bút màu một lần trước vòng lặp (đặt màu gốc) và thay đổi [màu sắc v] bút một lượng bên trong vòng lặp (dịch màu dần qua từng tia).

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
chọn bút màu (#ff8c1a)
lặp lại (36)
đặt bút
di chuyển (100) bước
nhấc bút
đi tới điểm x: (0) y: (0)
xoay @turnRight (10) độ
thay đổi [màu sắc v] bút một lượng (10)
end

Vẽ hoạ tiết gồm 12 hình vuông cạnh 100, cùng xuất phát từ một góc chung (0, 0), mỗi hình vuông xoay lệch 30° so với hình trước.

Xem lời giải

Dùng kỹ thuật B - xoay hình quanh tâm: vòng lặp ngoài xoay hướng 30° mỗi lần (12 × 30 = 360), vòng lặp trong vẽ một hình vuông cạnh 100 (4 cạnh, xoay 90° mỗi đỉnh). Vì hình vuông tự quay về đúng vị trí/hướng ban đầu sau khi vẽ xong, không cần khối đi tới để quay lại tâm.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
đặt bút
lặp lại (12)
lặp lại (4)
di chuyển (100) bước
xoay @turnRight (90) độ
end
xoay @turnRight (30) độ
end
nhấc bút

Bài 4: Hoa văn hình vuông xoay đổi màu theo từng vòng

Phần tiêu đề “Bài 4: Hoa văn hình vuông xoay đổi màu theo từng vòng”

Vẽ lại hoạ tiết ở Bài 3, nhưng mỗi hình vuông có một màu khác nhau, tạo hiệu ứng mandala nhiều màu.

Minh hoạ bằng 12 màu tiêu biểu - chương trình thật đổi màu mượt và liên tục hơn.
Xem lời giải

Thêm biến màu, tăng dần sau mỗi hình vuông, dùng để đặt màu bút trước khi vẽ hình vuông tiếp theo:

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
đặt bút
đặt [màu v] thành (0)
lặp lại (12)
đặt [màu sắc v] bút bằng (màu)
lặp lại (4)
di chuyển (100) bước
xoay @turnRight (90) độ
end
xoay @turnRight (30) độ
thay đổi [màu v] một lượng (8)
end
nhấc bút

Vẽ hoạ tiết hình bông hoa gồm 6 hình tròn bán kính 60, cùng đi qua một điểm chung (0, 0), mỗi hình tròn xoay lệch 60° so với hình trước.

Xem lời giải

Vẫn là kỹ thuật B, nhưng đơn vị lặp lại là một hình tròn (vẽ xấp xỉ bằng 36 đoạn ngắn, xem lại Bài 3 - Hình tròn ở chuyên đề trước) thay vì hình vuông. 6 × 60 = 360 nên tạo ra đúng 6 “cánh hoa” đều nhau.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
đặt bút
lặp lại (6)
chọn bút màu (lấy ngẫu nhiên từ (0) đến (100))
lặp lại (36)
di chuyển (10.47) bước
xoay @turnRight (10) độ
end
xoay @turnRight (60) độ
end
nhấc bút

Bài 6: Hoa văn tam giác xoay, đổi màu dần

Phần tiêu đề “Bài 6: Hoa văn tam giác xoay, đổi màu dần”

Vẽ hoạ tiết gồm 12 tam giác đều cạnh 90, cùng xuất phát từ một đỉnh chung (0, 0), mỗi tam giác xoay lệch 30° so với tam giác trước, đổi màu bút dần qua từng hình.

Minh hoạ bằng 12 màu tiêu biểu - chương trình thật đổi màu mượt và liên tục hơn.
Xem lời giải

Kết hợp cả kỹ thuật B (xoay hình quanh tâm, đơn vị lặp là tam giác đều cạnh 90, góc xoay mỗi đỉnh = 360 ÷ 3 = 120°) và kỹ thuật đổi màu dần đã học ở Bài 2/4 - lần này dùng thay đổi [màu sắc v] bút một lượng thay vì biến màu riêng, cho gọn hơn:

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
chọn bút màu (#4cbf56)
đặt bút
lặp lại (12)
lặp lại (3)
di chuyển (90) bước
xoay @turnRight (120) độ
end
xoay @turnRight (30) độ
thay đổi [màu sắc v] bút một lượng (8)
end
nhấc bút

Bài 7: Hoa văn ngôi sao nhọn (tia dài/ngắn xen kẽ)

Phần tiêu đề “Bài 7: Hoa văn ngôi sao nhọn (tia dài/ngắn xen kẽ)”

Vẽ hoạ tiết gồm 36 tia xen kẽ dài/ngắn, cùng xuất phát từ tâm (0, 0): 18 tia dài 120 bước xen kẽ với 18 tia ngắn 50 bước, mỗi tia cách nhau 10°.

Xem lời giải

Vẫn là kỹ thuật A, nhưng mỗi vòng lặp vẽ 2 tia (dài rồi ngắn) thay vì 1 tia - lặp 18 vòng × 2 tia = 36 tia, mỗi tia vẫn cách nhau 10° (36 × 10 = 360). Sự chênh lệch độ dài tạo ra hình ngôi sao nhọn thay vì hình tròn tia đều như Bài 1.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
lặp lại (18)
đặt bút
di chuyển (120) bước
nhấc bút
đi tới điểm x: (0) y: (0)
xoay @turnRight (10) độ
đặt bút
di chuyển (50) bước
nhấc bút
đi tới điểm x: (0) y: (0)
xoay @turnRight (10) độ
end

Vẽ hoạ tiết gồm 12 tia dài 80 bước toả từ tâm (0, 0), ở đầu mỗi tia vẽ thêm một hình vuông nhỏ cạnh 20, mỗi tia cách nhau 30°.

Xem lời giải

Kết hợp cả kỹ thuật A và B: mỗi vòng lặp vừa đi ra tâm theo một tia (kỹ thuật A) vừa vẽ một hình vuông nhỏ tại đầu tia đó (kỹ thuật B), rồi mới nhấc bút quay về tâm để bắt đầu tia tiếp theo. 12 × 30 = 360.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
lặp lại (12)
đặt bút
di chuyển (80) bước
lặp lại (4)
di chuyển (20) bước
xoay @turnRight (90) độ
end
nhấc bút
đi tới điểm x: (0) y: (0)
xoay @turnRight (30) độ
end

Vẽ hoạ tiết gồm 8 hình vuông xoay dần quanh tâm (0, 0) như Bài 3, nhưng cạnh hình vuông tăng dần: bắt đầu cạnh 20, mỗi hình vuông tăng thêm 15 so với hình trước, mỗi hình xoay lệch 45° so với hình trước.

Xem lời giải

Vẫn dùng kỹ thuật B, nhưng thay vì giữ nguyên cạnh hình vuông qua mỗi vòng lặp như Bài 3, dùng một biến Cạnh và tăng dần sau mỗi hình - hoạ tiết sẽ xoáy dần ra ngoài thay vì các hình chồng khít lên nhau. Lưu ý tổng góc xoay ở đây là 8 × 45 = 360 (một vòng), nhưng vì cạnh tăng dần nên hình cuối cùng không chồng khít lên hình đầu tiên - đó chính là hiệu ứng xoắn ốc.

khi bấm vào @greenFlag
Xóa tất cả
đặt kích thước bút vẽ bằng (3)
đi tới điểm x: (0) y: (0)
đặt hướng bằng (0)
đặt bút
đặt [Cạnh v] thành (20)
lặp lại (8)
lặp lại (4)
di chuyển (Cạnh) bước
xoay @turnRight (90) độ
end
xoay @turnRight (45) độ
thay đổi [Cạnh v] một lượng (15)
end
nhấc bút

Bài 10: Hoa văn 24 hình vuông xoay (đề thi thật)

Phần tiêu đề “Bài 10: Hoa văn 24 hình vuông xoay (đề thi thật)”

Phỏng theo đề Bảng A, tỉnh/thành Cần Thơ năm 2022, Bài 1 “Vẽ hình + hoa văn xoay”.

Vẽ hoạ tiết gồm 24 hình vuông cạnh 80, cùng xuất phát từ một điểm, mỗi hình vuông xoay lệch 15° so với hình trước, đổi màu bút dần sau mỗi hình vuông.

Xem lời giải

Cùng công thức ở Bài 3/4, chỉ đổi số liệu: 24 × 15 = 360, hình vuông cạnh 80. Dùng biến đếm VongLap để tính màu bút tăng dần theo mỗi vòng lặp ngoài:

khi bấm vào @greenFlag
Xóa tất cả
đi tới điểm x: (0) y: (0)
đặt hướng bằng (90)
đặt bút
đặt [VongLap v] thành (0)
lặp lại (24)
chọn bút màu ((VongLap) * (10))
lặp lại (4)
di chuyển (80) bước
xoay @turnRight (90) độ
end
xoay @turnRight (15) độ
thay đổi [VongLap v] một lượng (1)
end
nhấc bút
  • Thử thay hình vuông/tam giác/tròn bằng hình chữ nhật, ngũ giác đều, lục giác đều… (đã học ở chuyên đề Vẽ hình cơ bản) để so sánh hoạ tiết tạo ra.
  • Kết hợp thêm kỹ thuật đổi màu dần (Bài 2/4/6) vào Bài 8 hoặc Bài 9 để hoạ tiết nhiều màu hơn.
  • Cho hoạ tiết xoắn ốc ở Bài 9 tăng thêm cả màu lẫn cạnh qua mỗi vòng lặp, hoặc thử tăng cạnh nhanh/chậm hơn để so sánh hình dáng xoắn ốc tạo ra.
  • Xem thêm 3 dự án thực hành liên quan (cùng ý tưởng, trình bày dưới dạng dự án độc lập): Hoa văn hình vuông xoay, Hoa văn ngôi sao, Hoa văn hoa.