Esempio n. 1
0
std::string buildGrid(std::vector<int> &grid, int x, int y, Color &c)
{
    Random r;
    
    std::stringstream ppmData;
    // create the header
    ppmData << "P3\n" << x << " " << y << "\n255\n";
    for(int i = 0; i < 5; ++i)
    {
        c = randColor(r);
        line(grid, r.DrawNumber(0, 256), r.DrawNumber(0, 256), r.DrawNumber(0, 256), r.DrawNumber(0, 256), c);
        
        int rx = r.DrawNumber(0, 255);
        int ry = r.DrawNumber(0, 255);
        box(grid, rx, ry, r.DrawNumber(1, 256 - rx), r.DrawNumber(1, 256 - ry), c);
        
        rx = r.DrawNumber(0, 255);
        ry = r.DrawNumber(0, 255);
        solid_box(grid, rx, ry, r.DrawNumber(1, 256 - rx), r.DrawNumber(1, 256 - ry), c);
        
        rx = r.DrawNumber(55, 255);
        ry = r.DrawNumber(55, 255);
        int radius = r.DrawNumber(3, 255);
        circle(grid, rx, ry, radius, c, r.DrawBool());
    }
    
    // convert list to text file.
    for(int dy : range(0, y))
    {
        for(int dx : range(0, x))
        {
            int a, b, c;
            std::tie(a, b, c) = getPoint(grid, dx, dy);
            ppmData << " " << a << " " << b << " " << c << '\n';
        }
    }
    std::string s(ppmData.str());
    return s;
}