Mở Đầu

MSWLogo, một trong những ngôn ngữ lập trình đồ họa dựa trên LOGO, đã trở thành công cụ hữu ích cho những người muốn khám phá thế giới lập trình đồ họa bằng cách điều khiển “rùa” (turtle) để vẽ các hình ảnh phức tạp. Trong số các đối tượng mà người dùng thường muốn vẽ, hình người là một trong những thử thách thú vị nhưng cũng không kém phần khó khăn. Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, từng bước một, để vẽ một nhân vật người trong MSWLogo, từ việc chuẩn bị môi trường, xây dựng các hàm cơ bản, tới việc hoàn thiện các chi tiết như đầu, thân, tay, chân và thậm chí là biểu cảm khuôn mặt.

Lưu ý: Bài viết này hướng tới người mới bắt đầu và cả những người đã có kinh nghiệm cơ bản với MSWLogo. Bạn sẽ tìm thấy các đoạn mã mẫu, giải thích từng dòng lệnh và các mẹo tối ưu hóa để bạn có thể tùy chỉnh và sáng tạo thêm.

1.1 MSWLogo là gì?

MSWLogo (Microsoft Windows Logo) là một phiên bản của ngôn ngữ LOGO được phát triển cho nền tảng Windows. Nó cung cấp một môi trường đồ họa trong đó người dùng có thể viết các lệnh để điều khiển một “rùa” (turtle) di chuyển trên màn hình, tạo ra các đường vẽ. Các lệnh cơ bản bao gồm:

  • FORWARD n hoặc FD n: Di chuyển rùa tới phía trước n bước.
  • BACK n hoặc BK n: Di chuyển rùa lùi lại n bước.
  • RIGHT n hoặc RT n: Quay rùa sang phải n độ.
  • LEFT n hoặc LT n: Quay rùa sang trái n độ.
  • PENUP hoặc PU: Nhấc bút lên, rùa di chuyển mà không vẽ.
  • PENDOWN hoặc PD: Hạ bút xuống, rùa bắt đầu vẽ.
  • SETHEADING n hoặc SETHEADING n: Đặt hướng hiện tại của rùa thành n độ.
  • HOME: Đưa rùa về vị trí (0,0) và hướng lên trên.

  • Rèn luyện tư duy thuật toán: Việc chia một hình người thành các khối cơ bản và viết mã để vẽ chúng giúp bạn học cách phân tích vấn đề.
  • Phát triển kỹ năng lập trình hàm: Bạn sẽ tạo ra các hàm lặp lại (procedure) để tái sử dụng, giảm thiểu mã lặp.
  • Sáng tạo và tùy biến: Khi đã nắm vững các khối cơ bản, bạn có thể tạo ra các nhân vật hoạt hình, biểu cảm, thậm chí là nhân vật 3D đơn giản.

2. Chuẩn Bị Môi Trường

  1. Tải về: Truy cập trang chính thức của MSWLogo hoặc một nguồn tin cậy, tải file cài đặt MSWLogo.exe.
  2. Cài đặt: Chạy file và làm theo hướng dẫn. Đảm bảo chọn thư mục cài đặt dễ nhớ (ví dụ: C:\Program Files\MSWLogo).
  3. Mở chương trình: Khi khởi động, bạn sẽ thấy cửa sổ Command (nơi nhập lệnh) và Graphics (khu vực vẽ).

2.2 Cấu hình ban đầu

Cách Vẽ Người Trong Mswlogo
Cách Vẽ Người Trong Mswlogo
  • CLEARSCREEN xóa mọi nét vẽ trước.
  • SETSCREENCOLOR nhận ba tham số RGB (0-255). 255 255 255 là màu trắng.
  • SETPENCOLOR cũng nhận ba tham số RGB. 0 0 0 là màu đen.
  • SETPENSIZE xác định độ dày của nét vẽ (đơn vị pixel).

3. Phân Tích Hình Người Thành Các Thành Phần Cơ Bản

Một hình người cơ bản gồm:

  1. Đầu – Hình tròn hoặc oval.
  2. Cổ – Đoạn thẳng ngắn.
  3. Thân – Hình chữ nhật hoặc dạng “trapezoid” để tạo cảm giác chiều sâu.
  4. Tay – Hai cánh tay, mỗi bên gồm vai, cánh tay trên, khuỷu, cánh tay dưới.
  5. Chân – Hai chân, mỗi bên gồm hông, đùi, gối, bắp chân.
  6. Mặt – Hai mắt, mũi, miệng (có thể thêm lông mày, tai).

3.1 Lý thuyết về tỉ lệ

Để hình người trông cân đối, chúng ta sử dụng tỉ lệ cơ bản:

  • Đầu: 1 đơn vị (ví dụ: bán kính = 20)
  • Cổ: 0.2 đơn vị
  • Thân: 3 đơn vị chiều cao
  • Tay: 2.5 đơn vị (từ vai tới tay)
  • Chân: 3.5 đơn vị (từ hông tới mắt cá)

Bạn có thể thay đổi các giá trị này tùy theo phong cách (realistic, cartoon, stick figure). Trong ví dụ dưới, chúng ta sẽ dùng đơn vị = 20 pixel để dễ tính.

4. Xây Dựng Các Hàm Hỗ Trợ

4.1 Hàm di chuyển tới vị trí mà không vẽ

  • :X và :Y là các biến tham số.
  • SETXY di chuyển rùa tới (x, y) trên màn hình.

4.2 Hàm vẽ vòng tròn

MSWLogo có lệnh CIRCLE, nhưng để kiểm soát tốt hơn, chúng ta viết hàm riêng:

4.3 Hàm vẽ đường thẳng với độ nghiêng tùy chỉnh

4.4 Hàm vẽ hình chữ nhật (được dùng cho thân)

4.5 Hàm vẽ mắt (hình oval)

Lưu ý: MSWLogo không có hàm COS và PI mặc định, nhưng bạn có thể dùng COS và PI nếu cài đặt bộ mở rộng Math. Đối với đơn giản, chúng ta sẽ vẽ mắt bằng vòng tròn.

Cách Vẽ Người Trong Mswlogo
Cách Vẽ Người Trong Mswlogo

5. Vẽ Các Bộ Phận Cụ Thể

5.1 Vẽ Đầu

Gọi hàm:

5.2 Vẽ Cổ

Gọi:

5.3 Vẽ Thân

Gọi:

5.4 Vẽ Tay Trên (Vai tới khuỷu)

Chúng ta sẽ vẽ tay trái và phải bằng cùng một hàm, chỉ thay đổi góc quay.

Gọi:

5.5 Vẽ Chân

Gọi:

5.6 Vẽ Mặt (Mắt, Mũi, Miệng)

Hàm ARC (vẽ cung tròn):

Gọi:

6. Kết Hợp Tất Cả Các Bộ Phận

Ta tạo một hàm tổng hợp DRAWPERSON để vẽ toàn bộ người.

Sau khi nhập toàn bộ các hàm trên, chỉ cần chạy:

Bạn sẽ thấy một người dạng cartoon đơn giản xuất hiện trên cửa sổ đồ họa.

7. Tùy Biến Và Nâng Cao

Cách Vẽ Người Trong Mswlogo
Cách Vẽ Người Trong Mswlogo

7.1 Thay Đổi Tỉ Lệ

Bạn có thể truyền các tham số vào DRAWPERSON để thay đổi kích thước:

Sau đó:

7.2 Thêm Màu Sắc

MSWLogo hỗ trợ màu bút, vì vậy bạn có thể tô màu các bộ phận:

Gọi:

7.3 Vẽ Động Tác (Animation)

Bạn có thể tạo hiệu ứng di chuyển bằng cách dùng vòng lặp REPEAT và thay đổi vị trí của toàn bộ người.

  • REPCOUNT là biến tự động của REPEAT chứa số lần lặp hiện tại.
  • WAIT (có thể không có trong một số phiên bản) dùng để tạo độ trễ.

7.4 Vẽ Đa Người

Bạn có thể lặp lại hàm DRAWPERSON với các vị trí khác nhau.

8. Kiểm Tra Lỗi Thông Thường

Lỗi Nguyên nhân Cách khắc phục
“Undefined variable” Biến chưa được khai báo hoặc viết sai tên Kiểm tra chính tả, dùng :VAR khi cần
“Command not found” Lệnh không tồn tại (ví dụ: ARC chưa định nghĩa) Đảm bảo hàm được viết trước khi gọi
“Pen is down while moving” (vẽ không mong muốn) Quên PU trước khi di chuyển không vẽ Thêm PU và PD ở đúng vị trí
Màu không thay đổi SETPENCOLOR không nhận đúng giá trị RGB Kiểm tra giá trị 0‑255 và thứ tự tham số
Vẽ lệch Không reset hướng (SETHEADING) sau khi quay Sử dụng HOME hoặc SETHEADING 0 sau mỗi phần

9. Tổng Kết

Việc vẽ người trong MSWLogo không chỉ là một bài tập thú vị mà còn là cơ hội để bạn:

  • Hiểu sâu hơn về các lệnh đồ họa cơ bản và cách chúng tương tác với hệ tọa độ.
  • Rèn luyện kỹ năng lập trình hàm, tái sử dụng mã và giảm thiểu lỗi.
  • Khám phá tính sáng tạo bằng cách tùy biến màu sắc, tỉ lệ, biểu cảm khuôn mặt và thậm chí là tạo hoạt ảnh.

Bằng cách làm theo các bước trong bài viết này, bạn đã có một bộ khung vững chắc để vẽ một nhân vật người cơ bản, đồng thời có thể mở rộng thành các nhân vật phức tạp hơn như:

  • Nhân vật hoạt hình với nhiều khung hình.
  • Nhân vật 3D đơn giản bằng cách vẽ các mặt phẳng chồng lên nhau.
  • Các cảnh có nhiều người tương tác.

Hãy thử nghiệm, thay đổi và sáng tạo! MSWLogo là một môi trường mở, và mỗi dòng lệnh bạn viết đều là một nét vẽ trên bức tranh lập trình của riêng bạn.

Chúc bạn thành công và luôn đam mê khám phá thế giới lập trình đồ họa!

Rate this post
Mục nhập này đã được đăng trong Blog. Đánh dấu trang permalink.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *