ผลต่างระหว่างรุ่นของ "418341 ภาคต้น 2552: การบ้าน 2"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 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 เท่า