Board 0.9.6
examples/clipping.cpp
#include <Board.h>
using namespace LibBoard;
int main(int, char *[])
{
Board board;
Group g;
Path clip = {Point(-10, 5), Point(0, 5), Point(10, 0), Point(0, -5), Point(-10, -5)};
g.setClippingPath(clip);
g << circle(0, 0, 10, Color::Black, Color::Red, 1.0);
board.addDuplicates(g, 10, 18, 0, 0.9, 1.05);
board.addDuplicates(g, 10, 18, -18, 1.2, 1);
Group cross;
clip.clear();
clip << Point(5, 15);
clip << Point(5, 5);
clip << Point(15, 5);
clip << Point(15, -5);
clip << Point(5, -5);
clip << Point(5, -15);
clip << Point(-5, -15);
clip << Point(-5, -5);
clip << Point(-15, -5);
clip << Point(-15, 5);
clip << Point(-5, 5);
clip << Point(-5, 15);
cross.setClippingPath(clip);
Ellipse cropedC = LibBoard::circle(0, 0, 10, Color::Black, Color(100, 255, 100), 1.0);
cross << cropedC;
board << cross.scaled(3);
board.addDuplicates(cross.translated(0, -60).scaled(2), 18, 0, 0, 0.85, 0.85, 0.1);
board.saveEPS("clipping.eps", 210, 297);
// Centered on an A4 paper with a 50mm margin.
board.saveSVG("clipping_A4.svg", PageSize::A4, 50);
// Viewport == BoundingBox (default)
board.scaleToWidth(20, UseLineWidth);
board.saveSVG("clipping.svg", PageSize::BoundingBox, 0.0, Unit::Centimeter);
}
Declaration of the Board class.
int main(int argc, char *argv[])
Definition arithmetic.cpp:16
Structure representing an RGB triple.
Definition Color.h:43
Definition Board.h:55
Ellipse circle(double x, double y, double radius, Color penColor=Style::defaultPenColor(), Color fillColor=Style::defaultFillColor(), double lineWidth=Style::defaultLineWidth(), const LineStyle lineStyle=Style::defaultLineStyle())
Definition Ellipse.cpp:371
Class for EPS, FIG or SVG drawings.
Definition Board.h:61
void addDuplicates(const Shape &shape, std::size_t times, double dx, double dy, double scale=1.0)
Definition Board.cpp:491
void saveEPS(std::ostream &out, PageSize size=PageSize::BoundingBox, double margin=0.0, Unit unit=Unit::Millimeter, const std::string &title=std::string()) const
Definition Board.cpp:539
void saveSVG(const char *filename, PageSize size=PageSize::BoundingBox, double margin=0.0, Unit unit=Unit::Millimeter) const
Definition Board.cpp:765
An ellipse.
Definition Ellipse.h:38
A group of shapes. A group is basically a ShapeList except that when rendered in either an SVG of a F...
Definition Group.h:40
Group scaled(double sx, double sy)
Definition Group.cpp:115
Group translated(double dx, double dy)
Definition Group.cpp:110
void setClippingPath(const std::vector< Point > &points)
Definition Group.cpp:134
A path, according to Postscript and SVG definition.
Definition Path.h:45
void clear()
Remove all points of the path.
Definition Path.h:398
Struct representing a 2D point.
Definition Point.h:42
Shape & scaleToWidth(double w, LineWidthFlag lineWidthFlag)
Definition Shape.cpp:85