You are going to implement a program for calculating and visualizing the three-dimensional (3D) Convex Hull of a set of points in 3D using the following two approaches:
Please see the following references for these algorithms:
Your program should generate a set of random points in 3D using various distributions as input, calculate and visualize the 3D Convex Hull as graphical output. The program should have a good user interface to specify parameters such as the number of points, zoom in/out, and translation while displaying/visualizing the 3D Convex Hull, both as a wireframe (hidden-surface removal) and as flat (polygon) shading, with the boundaries of the polygons drawn as well. You may also assign different colors to each boundary triangle for better visualization.
You will also implement visualizations of the steps for both algorithms (algorithm animation: we should see the visual result of the current 3D convex hull as the algorithm proceeds).
You will test your program on arbitrary 3D point sets and report the performance of your implementations, comparing the two approaches. You must use a reasonable number of test cases, e.g., starting with 1000 and up to 1,000,000 points.