CPE111 : (Crazy) Computer graphic

วันนี้ผมมีเรียนเรื่อง Computer Graphic ครับ อาจจะคิด(ทีแรกผมก็คิดว่า)คงเรียนพวกการปั้น 3D model การทำ effect หรือ animation อะไรทำนองนั้น

แต่จริงๆ ที่ได้เรียน คือทฤษฎีพื้นฐานการสร้างภาพวัตถุ polygon ด้วย GLUT ครับ ก็มีทั้งที่เป็นการเลื่อน การย่อ ขยาย และหมุนวัตถุครับ

ใครที่อยากลองทำ Download lab sheet ไปทำดูครับ

ผลที่ได้จากการทำแบบฝึกหัดข้อสุดท้ายของเรื่องนี้ คือเรื่องของการสะท้อนตามเส้น โดยสะท้อนรูปห้าเหลี่ยมแดงให้เป็นอย่างรูปสีเหลืองครับ จริงๆ ต้องหาจุดศูนย์กลางระหว่างเส้นขอบด้านล่างของรูปแดงแล้วหมุนที่จุดนั้น 180 งศา แต่ด้วยความขี้เกียจ เลยจับเอามุมล่างขวาของห้าเหลี่ยมแดงแล้วหาค่ามุมที่หมุดแล้วลงล็อกพอดี =_=

ผลที่ได้จากการทำแบบฝึกหัดข้อสุดท้ายของเรื่องนี้ คือเรื่องของการสะท้อนตามเส้น โดยสะท้อนรูปห้าเหลี่ยมแดงให้เป็นอย่างรูปสีเหลืองครับ จริงๆ ต้องหาจุดศูนย์กลางระหว่างเส้นขอบด้านล่างของรูปแดงแล้วหมุนที่จุดนั้น 180 องศา แต่ด้วยความขี้เกียจ เลยจับเอามุมล่างขวาของห้าเหลี่ยมแดงแล้วหาค่ามุมที่หมุนแล้วลงล็อกพอดี =_=

สิ่งที่ยาก ไม่ใช่ขั้นตอนการทำหรอกครับ เพราะมันมีขั้นตอนที่แน่นอนอยู่แล้ว แต่จะยากตรงที่ปัญหาการใช้และเขียนบน C หรือ C++ มากกว่า เพราะอย่างที่หลายๆ ท่านคงทราบในภาษา C การจะทำงานที่เป็นอาเรย์อะไรก็ตามก็ต้องมีการสร้าง array  เสร็จ รับค่ามาก็ต้องเอามาเข้าสมการเพื่อหาจุดศูนย์กลางหรือ centroid เอาไว้อ้างอิง เวลาจะหมุน ก็ต้องแปลงค่าจากองศาเป็นเรเดียนแถมแปลงจาก CCW หรือทวนเข็มนาฬิกา (นึกถึงวงกลมหนึ่งหน่วยดูครับ เวลาเพิ่มขนาดมุมก็จะหมุนไปทางซ้าย) ให้เป็นตามเข็มนาฬิกาหรือ CW โดยการคูณ -1 ไปในขนาดมุม พอหาค่า sin กับ cos เสร็จ ก็ต้องเลื่อนจุดไปที่ 0,0 หรือจุดกำเนิดเพื่อหมุน แล้วเวลาหมุนแกน Y ก็ต้องเอาค่าแกน X ก่อนหมุนมาใช้ และปัญหาอีกร้อยแปดที่ผมคาดว่าบ่นทั้งวันก็คงไม่หมดแน่ 🙁

ถึงแม้ว่าเรื่องที่เรียนวันนี้จะทำให้หลายคนแทบเป็นบ้า (มีคนหนึ่งเป็นไข้นอนฟุบไปวันหนึ่งเลย) แต่ก็ทำให้เข้าใจอย่างแจ่มแจ้งเลยทีเดียวล่ะครับ เรียกได้ว่าถ้าถาม (ตอนนี้ [11/01/2014] นะครับ) คงอธิบายได้เป็นฉากๆ 😀

ปล. ถ้าอยากดูว่าเราเรียน (ภาคบังคับ) ยังไง ก็ ลอง ดู คลิป สอน ครับ 😮

ปล.2 ชาบู stackoverflow เป็นอย่างสูงครับ 😛