วาดรูปด้วยภาษาโลโก้ : ตอนที่ 18 – โดราเอมอน
สวัสดีครับ วันนี้เราจะมาวาดรูปโดราเอมอน (Doraemon) ด้วยภาษาโลโก้กันครับ (เย้ๆๆ) โดยในตอนนี้เราจะดูแบบที่ต้องการวาดก่อน แล้วค่อยๆ วาดรูปไปพร้อมๆ กันครับ รูปนี้อาจจะยากสักหน่อย แต่ถ้าเราอดทนและพยายาม ก็ไม่มีอะไรยากเกินความสามารถของเราหรอกครับ >_<
คำสั่งที่น้องๆ จะเจอในบทนี้
คำสั่ง | ความสามารถ | ตัวอย่าง |
fd ระยะทาง bk ระยะทาง |
forward = เดินหน้า backward = ถอยหลัง |
fd 100 = เดินหน้า 100 pixel bk 50 = ถอยหลัง 50 pixel |
rt องศา lt องศา |
right turn = หมุนขวา left turn = หมุนซ้าย |
rt 90 = หมุนไปทางขวา 90 องศา lt 45 = หมุนไปทางซ้าย 45 องศา |
repeat จำนวนครั้ง [ คำสั่ง ] | repeat = ทำคำสั่งต่อไปนี้ ซ้ำ n ครั้ง | repeat 3 [ fd 100 rt 120 ] repeat 4 [ fd 100 rt 90 ] repeat 6 [ fd 100 rt 60 ] |
TO ชื่อฟังก์ชัน :ตัวแปร คำสั่ง END |
function = สร้างชุดคำสั่ง | TO square :size repeat 4 [ fd :size rt 90 ] END |
cs clean |
clear screen = ล้างหน้าจอ clean = ล้างหน้าจอ |
|
pu pd |
pen up = ยกปากกา pen down = วางปากกา |
|
ht st |
hide turtle = ซ่อนเต่าโลโก้ show turtle = แสดงเต่าโลโก้ |
|
setxy พิกัดx พิกัดy | set (x,y) = กำหนดตำแหน่งเต่าโลโก้ | setxy 200 100 |
setpensize ขนาด setpencolor รหัสสี fill setscreencolor รหัสสี |
set pen size = กำหนดขนาดปากกา set pen color = กำหนดสีปากกา fill = ระบายสี set screen color = กำหนดสีพื้นหลัง |
setpensize 5 setpencolor 10 fill setscreencolor 10 |
หลายตอนที่ผ่านมาเราวาดรูปทั่วไปกันมาเยอะแล้ว ตอนนี้ขอวาดตัวการ์ตูนตามใจผู้เขียนบ้างนะครับ
ข้างล่างนี้คือรูปต้นแบบที่เราต้องการวาดครับ (แต่จะวาดได้เหมือนแค่ไหนนั้น ต้องคอยติดตามครับ)
รูปภาพจาก – http://doraemon.wikia.com
ก่อนอื่นเราจะเตรียมฟังก์ชันเพื่อให้เราวาดรูปได้ง่ายขึ้นกันก่อนครับ ได้แก่
- ฟังก์ชัน setpencolor_default ใช้สำหรับเปลี่ยนสีปากการเป็นสีดำ
- ฟังก์ชัน paint ใช้สำหรับระบายสี
- ฟังก์ชัน comment ใช้สำหรับอธิบายการทำงานของโค้ด
TO comment :message END TO setpencolor_default TO paint :color |
เริ่มต้นด้วยกำหนดขนาดของปากกาและสีที่จะใช้ครับ
cs setpensize 3 setpencolor_default |
จากนั้นวาดส่วนหัวโดราเอมอน
comment “head arc 360 120 paint “#00A8D8 pu bk 20 pd arc 360 100 paint “#FFFFFF |
วาดใบหน้าของโดราเอมอน
comment “face pu fd 50 pd arc 360 17 paint “#D20024 pu bk 15 pd bk 50 rt 120 arc 120 60 lt 120 bk 60 |
วาดหนวดของโดราเอมอน
comment “whiskers_1 pu fd 75 pd rt 70 pu fd 30 pd fd 60 pu bk 90 pd rt 20 pu fd 30 pd fd 60 pu bk 90 pd rt 20 pu fd 30 pd fd 60 pu bk 90 pd comment “whiskers_2 |
ต่อไปเราจะวาดตาของโดราเอมอนครับ ซึ่งส่วนนี้วาดยากพอสมควร (แถมหาตำแหน่งวาดตายากด้วย) จึงต้องเขียนเป็นฟังก์ชันแยกมาต่างหาก
TO eye lt 90 repeat 2 [ repeat 30 [ fd 0.25 rt 1 ] repeat 30 [ fd 0.50 rt 1 ] repeat 30 [ fd 0.75 rt 1 ] repeat 30 [ fd 0.75 rt 1 ] repeat 30 [ fd 0.50 rt 1 ] repeat 30 [ fd 0.25 rt 1 ] ] rt 90 pu fd 15 pd paint “#FFFFFF pu lt 90 pd repeat 2 [ repeat 30 [ fd 0.1 rt 1 ] repeat 30 [ fd 0.2 rt 1 ] repeat 30 [ fd 0.3 rt 1 ] repeat 30 [ fd 0.3 rt 1 ] repeat 30 [ fd 0.2 rt 1 ] repeat 30 [ fd 0.1 rt 1 ] ] rt 90 paint “#424242 pu bk 15 lt 90 pd rt 90 END comment “eyes |
เสร็จแล้วครับ สำหรับรูปโดราเอมอน คิดว่าเหมือนรูปต้นฉบับไหมครับ?
Code ทั้งหมด สามารถเข้าไปดูได้ที่นี่ครับ https://github.com/doctorkarn/logo-lang/blob/master/EP18.txt
สามารถติดตาม “วาดรูปด้วยภาษาโลโก้” ตอนอื่นๆ ได้ที่นี่ครับ https://karnlab.com/tag/ภาษาโลโก้