Inverse Kinematics

These images were created using an Inverse Kinematics solver that my partner Eileen and I wrote in C++ and OpenGL. The program calculates new angles that each joint needs to rotate by every time the target gets moved, and applies that rotation accordingly to the correct joints.

A copy of my project report can be seen here.
Figure 1: The initial position of four independent IK arms.                                    

Figure 3: Same IK arms as in Figures 1 and 2 with each arm moved to a different position, and with the camera rotated.

Figure 5: Same tail as in Figure 4 with its joints rotated and moved to a new position.

Figure 2: Same IK arms as in Figure 1 with each target and arm moved, and rotated around the x and y axis.

Figure 4: The initial position of a tail with five joints.

Figure 6: Same tail as in Figure 4 and 5 with the target location moved again and camera rotated.