#include "epix2.h" using namespace ePiX2; int main() { World world; Camera camera; const double MAX(4.0); const int N(6); Screen screen1(Pair(-4,-5), Pair(4,3)); Screen screen2(Pair(-4,-5), Pair(4,3)); Picture picture(Pair(-4,-4), Pair(4,4), "6x6in"); picture.backing(Blue(1.9)); screen1.backing(Black()).border(Red(), "2pt"); screen2.backing(Black()).border(Yellow(), "2pt"); Polygon face1(Vector(Origin, MAX,0,MAX), Vector(Origin, -MAX,0,MAX), 4); Polygon face2(Vector(Origin, 0,MAX,MAX), Vector(Origin, 0,-MAX,MAX), 4); for (int i=-N; i<=N; ++i) world << face1.move_to(Point(0,i*MAX*1.0/N,0)) << face2.move_to(Point(i*MAX*1.0/N,0,0)); Point ctr(0.5,0.5,0.5); text_style().text(Red()).back(White()).align(tr); world << Label(ctr, "$(0.5,0.5,0.5)$", MK_BOX).offset("4x4pt"); camera.at(Point(7, 5, 4)); camera.range(10); camera.focus(5); Vector N1(ctr, -1, 0, -1); // Knife knife1(N1, bold(RGB(0.7, 0, 1))); Knife knife1(N1, plain(Green(0.6))); Vector N2(ctr, 0, -1, -1); Knife knife2(N2, plain(Blue())); Vector N3(ctr, -1, -1, -1); Knife knife3(N3, plain(RGB(0.5, 0.2, 1))); World world1; world1 << world; world1.chop(knife1); world1.photo(screen1, camera); picture.paste(screen1, Mask::Rect(Pair(-3.95,1), Pair(-1,3.95))); World world2; world2 << world1; world2.chop(knife2); world2.photo(screen2, camera); picture.paste(screen2, Mask::Rect(Pair(1,1), Pair(3.95, 3.95))); world.chop(knife1).chop(knife2).chop(knife3); world.photo(picture, camera); picture.crop(); picture.print_to("cuts.eepic", PSTricks()); }