我一直试图制作一个方格图像。 我可以打印出一切都很好,但我想找到一种方法来复制不同颜色的形状,这样我就不必浪费时间创建64个矩形。我真的不知道从哪里开始。
#include "Window.h"
#include "Graph.h"
#include "std_lib_facilities_5.h"
#include "Simple_window.h"
#include "FL/Fl_JPEG_Image.H"
int main()
try {
这是使用Simple_window结构创建的窗口。
Point tl{ 100,100 };
Simple_window win{ tl,440,440,"Canvas" };
找出窗口上可以给出的最大距离,并将值设置为整数(均以x和y维度表示)。 x_grid和y_grid是单个网格方块的尺寸。
int x_size = win.x_max();
int y_size = win.y_max();
int x_grid = 55;
int y_grid = 55;
使用Lines类构建网格。 For循环用于确定放置线条以形成网格的位置。
Lines grid;
for (int x = x_grid; x < x_size; x += x_grid) {
grid.add(Point{ x,0 }, Point{ x,y_size });
}
for (int y = y_grid; y < y_size; y += y_grid) {
grid.add(Point{ 0,y }, Point{ x_size,y });
}
win.attach(grid);
所以在这里我使用矩形类创建了两种不同的颜色,但大小相同。 所以现在我把平方放在了一个点上。但就像我之前说的那样,我需要它们遍布整个图像。除了制作64个形状之外还有其他方法可以让它们复制正方形吗?我假设涉及一些循环。
Rectangle rx1(Point(55, 0), 55, 55);
Color moss_green(fl_rgb_color(173, 223, 173));
rx1.set_color(Color::invisible);
rx1.set_fill_color(moss_green);
win.attach(rx1);
Rectangle ry1(Point(0, 0), 55, 55);
Color cherry_blossom_pink(fl_rgb_color(255, 183, 197));
ry1.set_color(Color::invisible);
ry1.set_fill_color(cherry_blossom_pink);
win.attach(ry1);
win.wait_for_button();
}
catch (exception& e) {
cerr << "exception: " << e.what() << endl;
keep_window_open();
}
catch (...) {
cerr << "exception\n";
keep_window_open();
}