ผลต่างระหว่างรุ่นของ "418341 ภาคต้น 2552: การบ้าน 2"
Cardcaptor (คุย | มีส่วนร่วม) |
|||
แถว 6: | แถว 6: | ||
นอกจากนี้ โค้ดที่ให้ไปในการบ้านนี้มีจำนวนมาก ผมได้อธิบายรายละิเอียดของโ้ด้ดพวกนี้ไปบางส่วนแล้วในเลคเชอร์วันที่ 19 และ 21 สิงหาคม การดู [http://theory.cpe.ku.ac.th/~pramook/418341/first2009/lecture-16/lecture-16.pdf สไลด์] ประกอบการสอนจะช่วยคุณได้มาก | นอกจากนี้ โค้ดที่ให้ไปในการบ้านนี้มีจำนวนมาก ผมได้อธิบายรายละิเอียดของโ้ด้ดพวกนี้ไปบางส่วนแล้วในเลคเชอร์วันที่ 19 และ 21 สิงหาคม การดู [http://theory.cpe.ku.ac.th/~pramook/418341/first2009/lecture-16/lecture-16.pdf สไลด์] ประกอบการสอนจะช่วยคุณได้มาก | ||
+ | |||
+ | == ดาวน์โหลดโค้ด == | ||
+ | ขั้นแรกให้ดาวน์โหลดโค้ดจากงลิงนี้ก่อน: [http://theory.cpe.uk.ac.th/~pramook/418341/first2009/homework-02/homework-02.zip homework-02.zip] หลัีงจากนั้นให้ขยายไฟล์แล้วเปิดไฟล์ด้วย homework-02.sln ด้วย Microsoft Visual Studio 2008 Express | ||
+ | |||
+ | == ข้อ 1: Matrix == | ||
+ | เมื่อเปืดไฟล์ homework-02.sln แล้วให้ปิด project ทั้งหมดแล้วเหลือ project เหล่านี้เอาไว้ | ||
+ | * gtest | ||
+ | * problem0 | ||
+ | * problem1 | ||
+ | * problem1_test | ||
+ | โดยการปิดโปรเจคใ้้ห้ทำโดยคลิกขวาที่ชื่อโปรเจคแล้วเลือก Unload Project | ||
+ | |||
+ | หลังจากนั้นให้เปิด problem1.cpp ในโปรเจค problem1 แล้วจงเติมฟังก์ชันเหล่านี้ให้สมบูรณ์ | ||
+ | * <code>Matrix4x4 Matrix4x4::identity()</code> | ||
+ | *: คืน identity matrix ขนาด 4 คูณ 4 | ||
+ | * <code>Matrix4x4 Matrix4x4::translate(float x, float y, float z)</code> | ||
+ | *: คืน matrix ของการเลื่อนแกนขนานไปตามแกน x เท่ากับอาร์กิวเมนต์ x, ไปตามแกน y เท่ากับอาร์กิวเมนต์ y, และไปตามแกน z เท่ากับอาร์กิวเมนต์ z | ||
+ | * <code>Matrix4x4 Matrix4x4::translate_x(float x)</code> | ||
+ | *: คืน matrix ของการเลื่อนแกนขนานไปตามแกน x เท่ากับอาร์กิวเมนต์ x | ||
+ | * <code>Matrix4x4 Matrix4x4::translate_y(float y)</code> | ||
+ | *: คืน matrix ของการเลื่อนแกนขนานไปตามแกน y เท่ากับอาร์กิวเมนต์ y | ||
+ | * <code>Matrix4x4 Matrix4x4::translate_z(float z)</code> | ||
+ | *: คืน matrix ของการเลื่อนแกนขนานไปตามแกน z เท่ากับอาร์กิวเมนต์ z | ||
+ | * <code>Matrix4x4 Matrix4x4::scale(float x, float y, float z)</code> | ||
+ | *: คืน matrix ของการย่อขยายขนาดตามแกน x เท่ากับอาร์กิวเมนต์ x เท่า, ตามแกน y เท่ากับอาร์กิวเมนต์ y เท่า, และตามแกน z เท่ากับอาร์กิวเมนต์ z เท่า | ||
+ | * <code>Matrix4x4 Matrix4x4::scale_x(float x)</code> | ||
+ | *: คืน matrix ของการย่อขยายขนาดตามแกน x เท่ากับอาร์กิวเมนต์ x เท่า | ||
+ | * <code>Matrix4x4 Matrix4x4::scale_y(float y)</code> | ||
+ | *: คืน matrix ของการย่อขยายขนาดตามแกน y เท่ากับอาร์กิวเมนต์ y เท่า | ||
+ | * <code>Matrix4x4 Matrix4x4::scale_z(float z)</code> | ||
+ | *: คืน matrix ของการย่อขยายขนาดตามแกน z เท่ากับอาร์กิวเมนต์ z เท่า |
รุ่นแก้ไขเมื่อ 14:44, 3 กันยายน 2552
คำเืตือน: การบ้านนี้เป็นการบ้านที่ต้องเขียนโปรแกรมมาก และมีเวลาทำน้อย นอกจากนี้ยังต้องมีความรู้ภาษา C++ เป็นอย่างดี
ุถ้าคุณไม่มั่นใจว่าคุณมีความรู้ภาษา C++ ดีพอ คุณสามารถไปหาข้อมูลเพิ่มเติมได้จาก
นอกจากนี้ โค้ดที่ให้ไปในการบ้านนี้มีจำนวนมาก ผมได้อธิบายรายละิเอียดของโ้ด้ดพวกนี้ไปบางส่วนแล้วในเลคเชอร์วันที่ 19 และ 21 สิงหาคม การดู สไลด์ ประกอบการสอนจะช่วยคุณได้มาก
ดาวน์โหลดโค้ด
ขั้นแรกให้ดาวน์โหลดโค้ดจากงลิงนี้ก่อน: homework-02.zip หลัีงจากนั้นให้ขยายไฟล์แล้วเปิดไฟล์ด้วย homework-02.sln ด้วย Microsoft Visual Studio 2008 Express
ข้อ 1: Matrix
เมื่อเปืดไฟล์ homework-02.sln แล้วให้ปิด project ทั้งหมดแล้วเหลือ project เหล่านี้เอาไว้
- gtest
- problem0
- problem1
- problem1_test
โดยการปิดโปรเจคใ้้ห้ทำโดยคลิกขวาที่ชื่อโปรเจคแล้วเลือก Unload Project
หลังจากนั้นให้เปิด problem1.cpp ในโปรเจค problem1 แล้วจงเติมฟังก์ชันเหล่านี้ให้สมบูรณ์
Matrix4x4 Matrix4x4::identity()
- คืน identity matrix ขนาด 4 คูณ 4
Matrix4x4 Matrix4x4::translate(float x, float y, float z)
- คืน matrix ของการเลื่อนแกนขนานไปตามแกน x เท่ากับอาร์กิวเมนต์ x, ไปตามแกน y เท่ากับอาร์กิวเมนต์ y, และไปตามแกน z เท่ากับอาร์กิวเมนต์ z
Matrix4x4 Matrix4x4::translate_x(float x)
- คืน matrix ของการเลื่อนแกนขนานไปตามแกน x เท่ากับอาร์กิวเมนต์ x
Matrix4x4 Matrix4x4::translate_y(float y)
- คืน matrix ของการเลื่อนแกนขนานไปตามแกน y เท่ากับอาร์กิวเมนต์ y
Matrix4x4 Matrix4x4::translate_z(float z)
- คืน matrix ของการเลื่อนแกนขนานไปตามแกน z เท่ากับอาร์กิวเมนต์ z
Matrix4x4 Matrix4x4::scale(float x, float y, float z)
- คืน matrix ของการย่อขยายขนาดตามแกน x เท่ากับอาร์กิวเมนต์ x เท่า, ตามแกน y เท่ากับอาร์กิวเมนต์ y เท่า, และตามแกน z เท่ากับอาร์กิวเมนต์ z เท่า
Matrix4x4 Matrix4x4::scale_x(float x)
- คืน matrix ของการย่อขยายขนาดตามแกน x เท่ากับอาร์กิวเมนต์ x เท่า
Matrix4x4 Matrix4x4::scale_y(float y)
- คืน matrix ของการย่อขยายขนาดตามแกน y เท่ากับอาร์กิวเมนต์ y เท่า
Matrix4x4 Matrix4x4::scale_z(float z)
- คืน matrix ของการย่อขยายขนาดตามแกน z เท่ากับอาร์กิวเมนต์ z เท่า