24 พฤศจิกายน 2552

เจอะลึกการ Implement Rubik ด้วย Array 3 มิติของ Cube

เจอะลึกการ Implement Rubik ด้วย Array 3 มิติของ Cube 

Cube 1 ลูกคือ สี่เหลี่ยมเล็กๆ มี 6 หน้าหน้าที่อยู่ใน Rubik จะกำหนดให้เป็นสีดำ 
    ส่วนหน้าที่เหลือจะเป็น 

enum Color
{
blue,
red,
green,
orange,
yello,
white,
black
};

ภายใน Rubik มีทั้งหมด 3 X 3 X 3 ลูก



Rubik คือการเอา Cube มาจัดเรียงในลักษณะ 3 แถว 3 คอลัมน์ 3 สูง  
       จะมีหน้าที่บิดได้ในผิวนอกทั้งหมด 6 หน้า สาเหตุที่ไม่ีคิดด้านในเพราะสามารถแทนได้ด้วยการบิดหน้าข้างนอก 2 ครั้ง
enum Side
{ front, //+x
back, //-x
right,  //+y
left, //-y
top, //+z
down //-z
};


ส่วนในการบิด จะใช้ rotation matrix มาคิด ซึ่งต้องอธิบายเป็นรูปถึงจะเห็นภาพดังนี้


ตัวอย่างการคำนวณตามสูตรโดยการบิดด้านบน


ไม่มีความคิดเห็น: