Board  0.9.5
examples/example4.cpp
#include <cmath>
#include "Board.h"
using namespace LibBoard;
int main(int, char *[])
{
Board board;
board.clear(Color(200, 255, 200));
board.setLineWidth(0.01); // For Board drawing methods.
Style::setDefaultLineWidth(0.02); // For all Shapes constructors.
for (double x = -20.0; x <= 20; x += 1.0)
for (double y = -20.0; y <= 20; y += 1.0) {
board << Dot(x, y, Color::Black);
board.setPenColorRGBf(1.0, 0.0, 0.0);
board.drawDot(x + 0.2, y + 0.2);
}
Group g;
g << Line(-5, 2, 5, 2, Color::Red) << LibBoard::rectangle(-5, 2, 1, 4, Color::Null, Color::Blue) << LibBoard::rectangle(4, 2, 1, 4, Color::Null, Color::Blue)
<< Ellipse(0, 0, 5, 2, Color::Red, Color::Null);
Group g2(g);
Group g3(g);
g2.translate(0, 6);
g3.translate(0, -6);
Group f;
f << g << g2 << g3;
f.rotateDeg(45.0);
board << f;
Ellipse c = LibBoard::circle(2, 5, 1.8, Color::Red, Color::Green);
for (int i = 0; i < 5; ++i) {
l << c.scale(1, 0.5);
}
for (double x = -20, a = 0; x < 20; x += 4, a += 0.3) {
board << l.rotated(a).translate(x, 10);
}
g.clear();
Polyline r1 = LibBoard::rectangle(2, 2, 3, 1, Color::Black, Color::Null);
Polyline r2 = r1.translated(-8, -8);
for (double alpha = 0; alpha < 2 * M_PI; alpha += 0.2) {
g << r1.rotated(alpha);
board << r2.rotated(alpha, r2[0]);
}
board.saveEPS("example4.eps", Board::A4);
board.saveFIG("example4.fig", Board::A4);
board.scaleToWidth(10, UseLineWidth);
board.saveSVG("example4.svg", Board::BoundingBox, 0.0, Board::UCentimeter);
}
LibBoard::Shape::rotateDeg
Shape & rotateDeg(double angle, const Point &center)
Definition: Shape.h:336
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::Polyline
A polygonal line described by a series of 2D points.
Definition: Polyline.h:38
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::Polyline::rotated
Polyline rotated(double angle, const Point &center) const
Definition: Polyline.cpp:72
LibBoard::Group::translate
Group & translate(double dx, double dy) override
Definition: Group.cpp:70
LibBoard::Dot
A line between two points.
Definition: Dot.h:42
LibBoard::Board::drawDot
void drawDot(double x, double y)
Definition: Board.cpp:298
LibBoard::Line
A line between two points.
Definition: Line.h:38
LibBoard::ShapeList::translate
ShapeList & translate(double dx, double dy) override
Definition: ShapeList.cpp:328
LibBoard::Board::setPenColorRGBf
Board & setPenColorRGBf(float red, float green, float blue, float alpha=1.0f)
Definition: Board.cpp:238
LibBoard::ShapeList::clear
ShapeList & clear()
Definition: ShapeList.cpp:86
LibBoard::Ellipse
An ellipse.
Definition: Ellipse.h:38
LibBoard::Polyline::translated
Polyline translated(double dx, double dy) const
Definition: Polyline.cpp:99
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::ShapeList
A group of shapes.
Definition: ShapeList.h:46
Board.h
Declaration of the Board class.
LibBoard::Board::clear
void clear(const Color &color=Color::Null)
Definition: Board.cpp:149
LibBoard::ShapeList::rotated
ShapeList rotated(double angle, const Point &center)
Definition: ShapeList.cpp:312
LibBoard::Board
Class for EPS, FIG or SVG drawings.
Definition: Board.h:62
LibBoard::Ellipse::scale
Ellipse & scale(double sx, double sy) override
Definition: Ellipse.cpp:98
LibBoard::Board::saveFIG
void saveFIG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const
Definition: Board.cpp:629
LibBoard::Board::setLineWidth
Board & setLineWidth(double width)
Definition: Board.cpp:274
LibBoard::Color
Structure representing an RGB triple.
Definition: Color.h:43