*Rubik's cube* consists of 27 (sub)cubes arranged to form a larger 3?-3?-3 cube. Each of the subcubes has sides colored as red, green, blue, white, yellow and magenta. The same-colored faces of the subcubes are initially aligned so that the larger cube appears as if it had six solid differently colored [login to view URL] can move the Rubik's cube by rotating any plane of 9 subcubes by 90 degrees. The usual way to play with Rubik's cube is that one person distorts the original configuration by making a series of 90 degree rotations and the other tries to return the cube to its original state. The first part of this assignment is to construct a Rubik's cube and to display it. Since we will manipulate the cube in the second part, you should give some thought to how to represent the cube in order to emphasize that it includes 27 instances of a simple cube. The second part of the project involves manipulating the Rubik's cube. That would be great if you can put it in some random configuration by having the computer perform a random series of rotations of various faces. Once the cube is initialized, the user should be able to manipulate it. The user should be able to look at the cube from different angles to decide on a move. Thus, the user should be able to rotate the large cube as a whole any time she wishes. You should give some thought to what kind of user interface you want for the user to specify how she wants to look at the cube and what move she would like to perform. You are recommended to use glut functions (e.g. gluPickMatrix) to implement a picking mechanism to decide on which face to rotate. continues in deliverables part...
## Deliverables
Your program is not expected to know how to solve Rubik's cube for any initial [login to view URL] we are just beginning to talk about viewing, you may simply use orthographic viewing so the viewing procedures in the simple sample programs should suffice. Your grade will depend on how nicely you model the Rubik's cube, both statically and dynamically, the quality of your user interface, and the quality of your display. You should consider things like whether or not you want to display edges of the subcubes in addition to the face colors and whether you want to show a move as simply the cube in its final position or as a continuous rotation of smaller angles. However, simply showing the cube without the animation can be done very trivially and will not necessarily demonstrate the understanding of transformations that is key goal of this project.
Implementation hints:
• The most difficult part of this assignment is to be able to keep track of the position of each subcube as the user applies a series of rotations of the faces. If you specify an index *i* (*i* =0,1,…,5) for each face, and an index *j* (*j* = 0,1,…,26) for each subcube, then the indices {*i*} of the 6 cubes belonging to each face *j* change each time a rotation is applied, depending on which face is rotated.
• Once you determine which face, thus which subcubes to rotate, with picking, the next task is to be able perform this rotation properly. For that, you may need to store 28 different modelview matrices, one matrix to store the global view angle, and 27 matrices for the subcubes (that is, one for each subcube).
• For smooth rotations, you may need glut timer functions to adjust the speed of the rotation.
• You are also required to provide a help interface that instructs the user how to use input devices for interaction. The simplest way is to define a keyboard callback function that prints a description to the command line window.
just the .c files are enough for me.
** **
## Platform
windows xp, program must be written in C language. Because it is an undergraduate computer graphics course assignment, it shouldn't be coded in a sophisticated and complex way. it will be better if it is coded in a simplest way.
Hello,
We are a team with more than 12 years of experience in 3D design and 3D photorealistic visualization.
Check out our portfolio here: https://www.freelancer.com/u/kingjoon.html
Please give me more details about your project so I can give you an exact quote to do the project.
Looking forward to hearing from you, please let me know if you have any questions.
Best regards,
Mohsen
Hello...this is a very interesting program. I am totally sure that I can do it. I love this kind of graphics problems... I have master and PhD in computer graphics... so, I should be a good option for this project. Look at my profile and previous works. Best regards!