Canvas++ is a very simple graphics library contained in single header file. It's purpose is to make teaching of C++ more colorful and funny for kids and students. The main idea is to wrap windows API calls into simple interface. You can start drawing next after "Hello world" example - just declare Window variable and call method draw() to start drawing.
Quick start video: http://youtu.be/AeDaRlMsH5Q
Simple example:
#include "canvas.hpp" using namespace cnv; int main() { Window w; w.draw(Circle(150, 150, 100), Pen(0, 0, 255)); system("pause"); }
Animated rose with 5 petals:
#include "canvas.hpp" #include <cmath> using namespace cnv; int main() { Window w; w.enable_frame_buffer(); // we want smooth animation w.pen(Pen(PS_NULL)); // setting default pen to be invisible const double pi = 3.141593; const double delta = 0.01; const int k = 5; const int trace = 25; const int x0 = w.width()/2; const int y0 = w.height()/2; for(double theta = 0; theta <= 16*pi; theta += delta) { for(int i = trace; i; --i) { const double t = theta - 2*delta*i; const double r = x0 * sin(k*t)/2; const int y = y0 + r*sin(t); Brush b1(10*i, 10*i, 255); // blue brush Brush b2(10*i, 10*i, 0); // yellow brush w.draw(Circle(x0 + r*cos(t), y, (trace-i) / 3), b1); w.draw(Circle(x0 - r*cos(t), y, (trace-i) / 3), b2); } w.paint(); Sleep(10); w.clear(); } system("pause"); }