// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt | |
/* | |
This is an example illustrating the use of the perspective_window tool | |
in the dlib C++ Library. It is a simple tool for displaying 3D point | |
clouds on the screen. | |
*/ | |
using namespace dlib; | |
using namespace std; | |
// ---------------------------------------------------------------------------------------- | |
int main() | |
{ | |
// Let's make a point cloud that looks like a 3D spiral. | |
std::vector<perspective_window::overlay_dot> points; | |
dlib::rand rnd; | |
for (double i = 0; i < 20; i+=0.001) | |
{ | |
// Get a point on a spiral | |
dlib::vector<double> val(sin(i),cos(i),i/4); | |
// Now add some random noise to it | |
dlib::vector<double> temp(rnd.get_random_gaussian(), | |
rnd.get_random_gaussian(), | |
rnd.get_random_gaussian()); | |
val += temp/20; | |
// Pick a color based on how far we are along the spiral | |
rgb_pixel color = colormap_jet(i,0,20); | |
// And add the point to the list of points we will display | |
points.push_back(perspective_window::overlay_dot(val, color)); | |
} | |
// Now finally display the point cloud. | |
perspective_window win; | |
win.set_title("perspective_window 3D point cloud"); | |
win.add_overlay(points); | |
win.wait_until_closed(); | |
} | |
// ---------------------------------------------------------------------------- | |