วาดรูปด้วยภาษาโลโก้ : ตอนที่ 14 – ลายผ้า
ในตอนนี้เราจะมาวาดลายผ้าด้วยภาษาโลโก้กันครับ โดยเราแค่วาดเส้นธรรมดาๆ แล้วคะเนระยะห่างให้พอดีกับหน้าจอ เราก็จะได้ลายผ้าสวยๆ ครับ
คำสั่งที่น้องๆ จะเจอในบทนี้
คำสั่ง | ความสามารถ | ตัวอย่าง |
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 |
*** การวาดรูปลายผ้า ขนาดหน้าจอ (Resolution) ของคอมพิวเตอร์ที่น้องๆ ใช้ มีความสำคัญมากนะครับ โดยโปรแกรมในบทนี้ทดสอบกับหน้าจอขนาด 1366 x 768 นะครับ หากน้องๆ ต้องการวาดลวดลายผ้าให้เต็มจอ ต้องปรับขนาดให้เหมาะกับหน้าจอคอมพิวเตอร์ที่ต้องๆ ใช้นะครับ
โปรแกรมที่ 14-1
TO setup cs ht setscreencolor “#795548 setpencolor “#FFEB3B setpensize 3 END setup |
อธิบายการทำงานของโปรแกรม
- ฟังก์ชัน setup ใช้สำหรับกำหนดสีของพื้นหลัง สีของปากกา และขนาดของปากกา
- คำสั่ง pu setxy -470 -220 pd คือ การย้ายตำแหน่งเต่าโลโก้ ไปที่มุมซ้ายล่างของหน้าจอ
- repeat 28 คือ การทำซ้ำ 28 ครั้ง
- rt 30 fd 510 คือ การวาดเส้นตรง (เอียงและยาว)
- pu bk 510 คือ การยกปากกากลับมาที่เดิม
- rt 60 fd 34 lt 90 pd คือ การยกปากกาไปที่ตำแหน่งถัดไป
- …..
โปรแกรมที่ 14-2A
TO setup cs ht setscreencolor “#FFF9C4 setpencolor “#4FC3F7 setpensize 3 END TO h_line TO v_line setup |
อธิบายการทำงานของโปรแกรม
- ฟังก์ชัน setup ใช้สำหรับกำหนดสีของพื้นหลัง สีของปากกา และขนาดของปากกา
- คำสั่ง pu setxy -450 0 pd คือ การย้ายตำแหน่งเต่าโลโก้ไปที่มุมซ้าย
- ฟังก์ชัน h_line มีหน้าที่วาดเส้นยาวแนวตั้ง (19 ครั้ง)
- แต่ละครั้งจะวาดเส้นตรง และย้ายเต่าโลโก้ไปที่ตำแหน่งถัดไป
- ฟังก์ชัน v_line มีหน้าที่วาดเส้นยาวแนวนอน (9 ครั้ง)
- แต่ละครั้งจะวาดเส้นตรง และย้ายเต่าโลโก้ไปที่ตำแหน่งถัดไป
โปรแกรมที่ 14-2B
TO setup cs ht setscreencolor “#FFF9C4 setpensize 3 END TO h_line :s TO v_line :s setup |
อธิบายการทำงานของโปรแกรม
- ฟังก์ชัน setup ใช้สำหรับกำหนดสีของพื้นหลัง สีของปากกา และขนาดของปากกา
- คำสั่ง pu setxy -450 0 pd คือ การย้ายตำแหน่งเต่าโลโก้ไปที่มุมซ้าย
- ฟังก์ชัน h_line มีหน้าที่วาดเส้นยาวแนวตั้ง (19 ครั้ง)
- แต่ละครั้งจะวาดเส้นตรง และย้ายเต่าโลโก้ไปที่ตำแหน่งถัดไป
- เพิ่มเติม คือ เราจะวาดเส้นด้วยสีฟ้าและสีชมพูสลับกัน ดังนั้น เราจึงประยุกต์ใช้ Recursive Function มาใช้งานครับ
- โดยตัวแปร :s ทำหน้าที่เป็นตัวนับ
- ถ้า :s เป็นเลขคู่ ( :s หาร 2 เหลือเศษ 0 ) ตั้งค่าสีชมพู
- ถ้า :s เป็นเลขคี่ ( :s หาร 2 เหลือเศษ 1 ) ตั้งค่าสีฟ้า
- และถ้าตัวแปร :s มีค่าเป็น 0 (น้อยกว่า 1) หยุดการทำงาน
- ฟังก์ชัน v_line มีหน้าที่วาดเส้นยาวแนวนอน (9 ครั้ง)
- แต่ละครั้งจะวาดเส้นตรง โดยใช้สีฟ้าและสีชมพูสลับกัน และย้ายเต่าโลโก้ไปที่ตำแหน่งถัดไป
โปรแกรมที่ 14-3
TO setup cs ht setscreencolor “#FFF9C4 setpencolor “#8D6E63 setpensize 3 END setup rt 90 |
อธิบายการทำงานของโปรแกรม
- ฟังก์ชัน setup ใช้สำหรับกำหนดสีของพื้นหลัง สีของปากกา และขนาดของปากกา
- คำสั่ง pu setxy -460 0 pd คือ การย้ายตำแหน่งเต่าโลโก้ไปที่มุมซ้าย
- repeat 10 คือ การทำซ้ำ 10 ครั้ง
- fd 1000 pu rt 90 fd 20 lt 90 pd
fd 1000 pu rt 90 fd 80 lt 90 pd
คือ การวาดเส้นตรง 2 เส้น (ที่อยู่ใกล้กัน) จากนั้นย้ายตำแหน่งเต่าโลโก้
- …..
และนี่คือเรื่องราวของเทคนิคการวาดรูปจากหมุนที่นำมาฝากกันในวันนี้ครับ สามารถติดตามตอนต่อไปได้ที่นี่ครับ https://karnlab.com/tag/ภาษาโลโก้