มาเริ่มเลยครับ ดูภาพข้างล่างนี้ครับ (ใช้โปรแกรม gimp วาดครับ สวยมั้ย)
| รูปที่ 4.1 |
สมมุติว่ามันเป็นเกมนะครับ ไอ้วงกลมตรงกลาง เป็นศัตรู แล้ว ไอ้สามเหลียมเป็นตัวละครของผู้เล่นที่สามารถเคลื่อนที่ ขึ้น ลง ซ้าย ขวา ลักษณะของเกมคือ ศัตรูจะยิง อาวุธออกมาใส่ผูเล่น ถ้าผู้เล่นหลบทัน ก็ผ่านด่าน ถ้าผู้เล่นหลบไม่ทันก็จบเกม
ปัญหาคือ ทำยังไงจะให้ ศัตรูยิงตัวละครของผู้เล่นได้
(หลายคนตอบว่าคงเป็นไปยาก จะเป็นไปได้ไง อยากรู้อ่ะพี่ )
คำตอบของปัญหานี้ก็เราต้องใช้ความรู้ทางด้านตรีโกณมิติมาใช้ครับ
ก่อนที่จะไปถึงตรีโกณมิติเราจะต้อง ตอบได้ ว่า ....
เราจะหมุน ลำกล้องปืนของศัตรูไปกี่องศา
ทวนเข็มนาฬิกา หรือตามเข็มนาฬิกา
จากรูปที่ 4.1 จะเป็นว่าต้องหมุนตามเข็มนาฬิกาเป็นมุม theta องศา ใช่ไหมครับ
ถ้าเราหา theta ได้ ก็คือ เราจะรู้ว่าจะหมุนปืน ไปทางใด แล้วเราก็สามารถเขียนโปรแกรมให้ศัตรูยิงผู้เล่นได้อย่างเมามันแล้วล่ะครับ
ต่อไปมาว่าถึงเรื่องของ ตรีโกณมิติครับ
ในที่นี้เราจะพูดถึงตรีโกณมิติในแง่ที่ว่ามันเพียงฟังก์ชั่น ที่แทนค่าเข้าไปแล้วจะได้ค่าของฟังกั่นออกมา ส่วนรายละเอียดเกี่ยวกับ ตรีโกณมิติถ้าท่านชื่นชอบ ท่านสามารถสืบค้นได้จากเว็บอื่นๆ
| รูปที่ 4.2 |
A,B,C คือ มุม
a,b,c คือ ความยาวของแตต่ละด้าน
| รูปที่ 4.3 |
จากความรู้ข้างต้นเราก็จะสามารถหามุมได้โดยการวาดภาพก่อนครับดังนี้
| รูปที่ 4.4 |
จากภาพบวกกับความรู้ที่สูตรที่ให้ในรูปที่ 4.3 เราก็จะตอบได้ว่า มุม theta ที่เราจะหมุนไปมีค่า
theta = atan(a/b)
แค่นี้ ส่วนสำหรับใครที่อยากเติมลูกเล่นวูปว๊าบ ก็คงต้องเขียนโค๊ดกันยาวหน่อย
แต่อย่างไรก็ตามในบางที่เมื่อเราไม่ทราบค่าความยาวของด้านสามเหลี่ยมเราก็สามารถหาได้โดยใช้ทฤษฎีปีทาโกรัสได้น่ะครับ อีกอย่างหนึ่งที่สำคัญก่อนจะจากกันไปวันนี้ครับ คือ : ในการเขียนโปรแกรมคอมพิวเตอร์เราจะใช้แค่บางส่วนของคณิตศาสตร์เท่านั้น ดังนั้นคณิตศาสตร์จึงจำเป็นสำหรับการเขียนโปรแกรมความพิวเตอร์ครับ (อันนี้ความคิดผมเอง)
