Board  0.9.5
examples/clipping.cpp
#include <cmath>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <vector>
#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);
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);
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", Board::A4, 50);
// Viewport == BoundingBox (default)
board.scaleToWidth(20, UseLineWidth);
board.saveSVG("clipping.svg", Board::BoundingBox, 0.0, Board::UCentimeter);
}
LibBoard::Board::saveEPS
void saveEPS(std::ostream &out, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter, const std::string &title=std::string()) const
Definition: Board.cpp:532
LibBoard::Group::setClippingPath
void setClippingPath(const std::vector< Point > &points)
Definition: Group.cpp:134
LibBoard::Board::saveSVG
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const
Definition: Board.cpp:758
LibBoard::Shape::scaleToWidth
Shape & scaleToWidth(double w, LineWidthFlag lineWidthFlag)
Definition: Shape.cpp:85
LibBoard::Point
Struct representing a 2D point.
Definition: Point.h:42
LibBoard::cross
Group cross(Point p, const Style &style=Style::defaultStyle())
Definition: Board.cpp:968
LibBoard::Path
A path, according to Postscript and SVG definition.
Definition: Path.h:45
LibBoard::Ellipse
An ellipse.
Definition: Ellipse.h:38
LibBoard::Group
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
LibBoard::Board::addDuplicates
void addDuplicates(const Shape &shape, std::size_t times, double dx, double dy, double scale=1.0)
Definition: Board.cpp:490
Board.h
Declaration of the Board class.
LibBoard::Board
Class for EPS, FIG or SVG drawings.
Definition: Board.h:62
LibBoard::Color
Structure representing an RGB triple.
Definition: Color.h:43