Board 0.9.6
examples/logo.cpp
#include <Board.h>
using namespace LibBoard;
int main(int, char *[])
{
Board board;
Board::disableLineWidthScaling();
board.setLineWidth(1).setPenColorRGBi(255, 100, 0);
board.setLineStyle(SolidStyle);
board.setLineJoin(MiterJoin);
board.setLineCap(RoundCap);
board.drawLine(-50, -27, 50, -27);
board.addDuplicates(board.last(), 10, 0, -2);
Point p = board.last<Line>().boundingBox(IgnoreLineWidth).centerLeft();
int n = 20;
double angle = -M_PI / (2 * n);
while (n--) {
board << board.last<Line>().rotated(angle, p);
}
n = 30;
angle = -M_PI / (n);
while (n--) {
board << board.last<Line>().scaled(0.95).rotated(angle, p);
}
double textHeight = board.last<Line>().boundingBox(UseLineWidth).height;
board << Text(-45, -20, "LibBoard", Fonts::Helvetica, "'Bookman Old Style',Verdana", textHeight * 1.2, Color::Green);
Board::enableLineWidthScaling();
board.saveEPS("logo_A4.eps", PageSize::A4);
board.saveFIG("logo_A4.fig", PageSize::A4);
board.scaleToWidth(25, UseLineWidth);
board.saveSVG("logo.svg", PageSize::BoundingBox, 0.0, Unit::Centimeter);
}
Declaration of the Board class.
#define M_PI
Definition Shape.h:46
int main(int argc, char *argv[])
Definition arithmetic.cpp:16
Definition Board.h:55
Class for EPS, FIG or SVG drawings.
Definition Board.h:61
void drawLine(double x1, double y1, double x2, double y2)
Definition Board.cpp:303
void addDuplicates(const Shape &shape, std::size_t times, double dx, double dy, double scale=1.0)
Definition Board.cpp:491
Board & setLineCap(LineCap cap)
Definition Board.h:1072
void saveFIG(const char *filename, PageSize size=PageSize::BoundingBox, double margin=0.0, Unit unit=Unit::Millimeter) const
Definition Board.cpp:636
Board & setPenColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition Board.cpp:232
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
Board & setLineWidth(double width)
Definition Board.cpp:274
Board & setLineStyle(LineStyle style)
Definition Board.h:1066
Board & setLineJoin(LineJoin join)
Definition Board.h:1078
void saveSVG(const char *filename, PageSize size=PageSize::BoundingBox, double margin=0.0, Unit unit=Unit::Millimeter) const
Definition Board.cpp:765
A line between two points.
Definition Line.h:38
Line rotated(double angle, const Point &center) const
Definition Line.cpp:67
Struct representing a 2D point.
Definition Point.h:42
T & last(const std::size_t position=0)
Definition ShapeList.h:505
Shape & scaleToWidth(double w, LineWidthFlag lineWidthFlag)
Definition Shape.cpp:85
A piece of text.
Definition Text.h:40