Có thể bạn quan tâm: Cách Vẽ Hình Tết Ta: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
TÓM TẮT
- 1 Lời mở đầu
- 2 1. Giới thiệu nhanh về MSWLogo
- 3 2. Các khái niệm cơ bản cần nắm
- 4 3. Vẽ một hình vuông đơn giản
- 5 4. Định nghĩa hàm vẽ hình vuông
- 6 5. Vẽ nhiều hình vuông đồng thời (Pattern)
- 7 6. Kỹ thuật nâng cao
- 8 7. Thực hành: Dự án Mini – “Logo Art: Hình Vuông Đa Màu”
- 9 8. Lỗi thường gặp và cách khắc phục
- 10 9. Tổng kết
Lời mở đầu
MSWLogo, một phiên bản mở rộng của ngôn ngữ lập trình Logo, đã được sử dụng rộng rãi trong giáo dục và lập trình sáng tạo nhờ khả năng vẽ đồ họa vector bằng lệnh “pen”. Trong số các hình cơ bản, hình vuông là một trong những đối tượng dễ học nhưng lại là nền tảng quan trọng để người dùng làm quen với các khái niệm như góc, độ dài, vòng lặp và hàm. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những bước cơ bản nhất cho tới các kỹ thuật nâng cao, giúp bạn có thể vẽ hình vuông trong MSWLogo một cách nhanh chóng và linh hoạt.
Lưu ý: Bài viết được chia thành nhiều phần, mỗi phần sẽ giải thích một khái niệm hoặc một kỹ thuật cụ thể. Bạn nên đọc lần lượt để nắm vững toàn bộ quy trình.
Có thể bạn quan tâm: Cách Vẽ Hình Tròn Trong Photoshop: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới thiệu nhanh về MSWLogo
MSWLogo (Microsoft Windows Logo) là một môi trường lập trình đồ họa dựa trên ngôn ngữ Logo, được phát triển cho hệ điều hành Windows. Các điểm mạnh của MSWLogo bao gồm:
- Giao diện đồ họa trực quan: Cửa sổ “Command” và “Turtle” cho phép bạn thấy ngay kết quả của lệnh.
- Ngôn ngữ lệnh đơn giản: Các lệnh như
FORWARD,RIGHT,LEFT,PENUP,PENDOWNrất dễ hiểu. - Hỗ trợ hàm và biến: Bạn có thể định nghĩa các procedure (hàm) và sử dụng biến để lưu trữ giá trị.
- Khả năng mở rộng: Hỗ trợ thư viện mở rộng, tạo ra các hình phức tạp hơn.
Đối với việc vẽ hình vuông, chúng ta sẽ tập trung vào các lệnh di chuyển và quay, kết hợp với vòng lặp để giảm thiểu việc nhập lệnh lặp lại.
2. Các khái niệm cơ bản cần nắm
2.1. Turtle (Con rùa)
- Turtle là con trỏ (cursor) trong không gian vẽ. Nó có vị trí (x, y) và hướng (angle) hiện tại.
- Các lệnh
FORWARD(hoặcFD) vàBACK(hoặcBK) di chuyển Turtle theo hướng hiện tại. - Các lệnh
RIGHT(hoặcRT) vàLEFT(hoặcLT) quay Turtle một góc nhất định.
2.2. Pen (Bút)
- PENUP (
PU) và PENDOWN (PD) điều khiển việc vẽ khi Turtle di chuyển. - SETPC (set pen color) và SETPEN (set pen width) thay đổi màu và độ dày của đường vẽ.
2.3. Vòng lặp (LOOP)
REPEAT n các lệnhthực hiện các lệnh trong ngoặc vuôngnlần.- Đây là cách hiệu quả nhất để vẽ các hình có tính đối xứng, như hình vuông, tam giác, ngũ giác…
2.4. Hàm (Procedure)
TO tên_hàm :các_tham_số ... ENDđịnh nghĩa một hàm mới.- Khi hàm đã được định nghĩa, bạn có thể gọi lại bằng cách viết tên hàm và truyền tham số.
3. Vẽ một hình vuông đơn giản
3.1. Công thức cơ bản
Một hình vuông có bốn cạnh bằng nhau và bốn góc 90 độ. Vì vậy, để vẽ một hình vuông, chúng ta chỉ cần:
- Di chuyển Turtle một đoạn độ dài
side. - Quay Turtle 90 độ sang phải (hoặc trái).
- Lặp lại 4 lần.
3.2. Mã lệnh cơ bản

Có thể bạn quan tâm: Cách Vẽ Hình V Bts: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
; Vẽ một hình vuông có cạnh 100 đơn vị
REPEAT 4 FORWARD 100 RIGHT 90
Khi chạy lệnh trên trong MSWLogo, Turtle sẽ bắt đầu từ vị trí hiện tại, vẽ một hình vuông có cạnh 100.
3.3. Thêm màu và độ dày
SETPENCOLOR "red ; Đặt màu bút đỏ
SETWIDTH 3 ; Độ dày bút 3
PENDOWN ; Bắt đầu vẽ
REPEAT 4 FORWARD 150 RIGHT 90
PENUP ; Kết thúc vẽ
Bạn có thể thay đổi màu sắc bằng cách sử dụng tên màu tiếng Anh ("blue", "green") hoặc mã màu HEX ("#FF5733").
3.4. Đặt vị trí bắt đầu
Nếu muốn vẽ hình vuông ở một vị trí cụ thể, sử dụng lệnh SETXY:
SETXY -200 50 ; Di chuyển Turtle tới tọa độ (-200, 50)
PENDOWN
REPEAT 4 FORWARD 80 RIGHT 90
PENUP
4. Định nghĩa hàm vẽ hình vuông
Việc lặp lại lệnh REPEAT 4 ... mỗi khi muốn vẽ một hình vuông là không tiện lợi. Chúng ta sẽ định nghĩa một hàm để tái sử dụng.
4.1. Hàm SQUARE
TO SQUARE :side ; :side là độ dài cạnh của hình vuông REPEAT 4 FORWARD :side RIGHT 90
END
Sau khi định nghĩa, bạn có thể gọi:
PENDOWN
SQUARE 120 ; Vẽ hình vuông cạnh 120
PENUP
4.2. Thêm tham số màu và độ dày
TO SQUARE :side :color :width SETPENCOLOR :color SETWIDTH :width PENDOWN REPEAT 4 FORWARD :side RIGHT 90 PENUP
END
Cách gọi:
SQUARE 200 "blue 5 ; Vẽ hình vuông xanh, độ dày 5
5. Vẽ nhiều hình vuông đồng thời (Pattern)
Khi bạn đã có hàm SQUARE, việc tạo ra các mẫu (pattern) phức tạp trở nên dễ dàng. Dưới đây là một số ví dụ.
5.1. Hình vuông xoay vòng
TO ROTATING_SQUARES :n :size :angle REPEAT :n SQUARE :size "purple 2 RIGHT :angle END ; Gọi hàm: vẽ 12 hình vuông, mỗi hình quay 30 độ
ROTATING_SQUARES 12 80 30
Kết quả là một vòng tròn các hình vuông xoay quanh tâm, tạo ra hiệu ứng “bánh xe”.
5.2. Lưới hình vuông
TO GRID_SQUARES :rows :cols :size :gap LOCALMAKE "startX XCOR LOCALMAKE "startY YCOR REPEAT :rows REPEAT :cols SQUARE :size "black 1 FORWARD (:size + :gap) ; Quay lại cột đầu tiên SETX :startX ; Di chuyển xuống dòng mới BACK (:cols (:size + :gap)) RIGHT 90 FORWARD (:size + :gap) LEFT 90 ; Trở lại vị trí ban đầu SETXY :startX :startY
END ; Vẽ lưới 5x5, mỗi ô 40, khoảng cách 10
GRID_SQUARES 5 5 40 10
Kết quả là một lưới 5×5 các hình vuông, rất hữu ích cho việc tạo nền hoặc bảng ô.
6. Kỹ thuật nâng cao
6.1. Vẽ hình vuông có viền và nền (filled square)

Có thể bạn quan tâm: Cách Vẽ Hình Tọa Độ: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
MSWLogo hỗ trợ lệnh FILL để tô màu nền. Tuy nhiên, để tô đầy một hình vuông, chúng ta thường dùng lệnh FILL kết hợp với việc vẽ một vòng kín.
TO FILLED_SQUARE :side :borderColor :fillColor :borderWidth SETPENCOLOR :borderColor SETWIDTH :borderWidth PENDOWN ; Vẽ viền REPEAT 4 FORWARD :side RIGHT 90 ; Đánh dấu điểm bắt đầu để fill ; Đặt lại màu nền SETPENCOLOR :fillColor FILL PENUP
END ; Ví dụ:
FILLED_SQUARE 120 "black "yellow 2
6.2. Vẽ hình vuông 3D (pseudo 3D)
Bằng cách vẽ hai hình vuông chồng lên nhau và nối các đỉnh, bạn có thể tạo cảm giác 3 chiều.
TO CUBE :size :offset ; Vẽ mặt trước SQUARE :size "gray 2 ; Di chuyển tới vị trí mặt sau PENUP FORWARD :offset RIGHT 90 FORWARD :offset LEFT 90 PENDOWN ; Vẽ mặt sau SQUARE :size "lightgray 2 ; Nối các đỉnh PENUP SETXY XCOR YCOR PENDOWN REPEAT 4 FORWARD :size RIGHT 90 FORWARD :offset LEFT 90 PENUP
END ; Gọi hàm:
CUBE 100 30
6.3. Tạo animation (điều khiển thời gian)
Bạn có thể tạo hiệu ứng quay hình vuông bằng cách sử dụng WAIT và lặp lại vòng quay.
TO ANIMATE_SQUARE :size :steps :delay REPEAT :steps CLEARSCREEN SETXY -:size/2 -:size/2 SQUARE :size "red 3 RIGHT 360/:steps WAIT :delay END ; Quay hình vuông 180 lần, mỗi khung 0.05 giây
ANIMATE_SQUARE 150 180 0.05
7. Thực hành: Dự án Mini – “Logo Art: Hình Vuông Đa Màu”
7.1. Mục tiêu
- Tạo ra một bức tranh gồm nhiều hình vuông với màu sắc ngẫu nhiên.
- Sử dụng hàm
RANDOMđể chọn màu. - Đặt các hình vuông ở vị trí ngẫu nhiên trong một vùng nhất định.
7.2. Các bước thực hiện
- Định nghĩa hàm vẽ hình vuông màu ngẫu nhiên
TO RANDOM_SQUARE :size :area ; Chọn màu ngẫu nhiên LOCALMAKE "r RANDOM 255 LOCALMAKE "g RANDOM 255 LOCALMAKE "b RANDOM 255 SETPENCOLOR (WORD "#" (FORMAT "%02X" :r) (FORMAT "%02X" :g) (FORMAT "%02X" :b)) ; Đặt vị trí ngẫu nhiên SETX (RANDOM :area - :area/2) SETY (RANDOM :area - :area/2) SQUARE :size "black 1
END
- Vẽ 100 hình vuông ngẫu nhiên
CLEARSCREEN
REPEAT 100 RANDOM_SQUARE 30 400
Kết quả: Một bức tranh “pixel art” đầy màu sắc, mỗi hình vuông là một “pixel” lớn.
7.3. Mở rộng
- Thêm gradient: thay vì màu ngẫu nhiên, tính màu dựa trên khoảng cách tới trung tâm.
- Thêm layer: vẽ các hình vuông có độ trong suốt (alpha) bằng cách sử dụng
SETALPHA(nếu phiên bản MSWLogo hỗ trợ).
8. Lỗi thường gặp và cách khắc phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
ERROR: Unknown command |
Gõ sai lệnh (ví dụ FORWARD → FOWARD) |
Kiểm tra chính tả, sử dụng autocomplete nếu có |
ERROR: Variable not defined |
Tham số hàm chưa được truyền hoặc biến chưa khai báo | Đảm bảo truyền đầy đủ tham số, khai báo biến bằng MAKE |
Turtle không di chuyển |
Bút đang ở trạng thái PENUP |
Đảm bảo gọi PENDOWN trước khi vẽ |
Hình vuông bị lệch |
Trùng lặp lệnh RIGHT/LEFT hoặc không trả về vị trí ban đầu |
Kiểm tra số lần quay, sử dụng HOME hoặc SETXY để reset |
Màu không hiển thị |
Sử dụng màu không hợp lệ hoặc không hỗ trợ | Dùng tên màu chuẩn ("red", "green") hoặc mã HEX hợp lệ ("#FF0000") |
9. Tổng kết
Trong bài viết này, chúng ta đã đi từ những kiến thức cơ bản nhất về cách di chuyển và quay Turtle trong MSWLogo, đến việc định nghĩa hàm vẽ hình vuông, rồi mở rộng sang các mẫu phức tạp như lưới, xoay vòng, hình vuông 3D và thậm chí animation. Những kỹ thuật này không chỉ giúp bạn nhanh chóng vẽ một hình vuông bất kỳ, mà còn là nền tảng để phát triển các dự án đồ họa sáng tạo hơn.
Những điểm quan trọng cần ghi nhớ
- Sử dụng
REPEATđể giảm lặp lại lệnh. - Định nghĩa hàm (
TO … END) để tái sử dụng mã và tăng tính modular. - Kết hợp màu, độ dày và fill để tạo ra các hình vuông đa dạng.
- Ứng dụng vòng lặp lồng nhau để tạo lưới và pattern.
- Thử nghiệm với animation và 3D để nâng cao khả năng sáng tạo.
Bạn đã sẵn sàng thử nghiệm và tạo ra những tác phẩm độc đáo của riêng mình chưa? Hãy mở MSWLogo, nhập các đoạn mã ở trên và khám phá vô hạn khả năng mà ngôn ngữ Logo mang lại. Chúc bạn thành công và luôn giữ đam mê với lập trình đồ họa!
