Board  0.9.5
examples/arrows.cpp
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include "Board.h"
using namespace LibBoard;
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
float random_gray()
{
return rand() / static_cast<float>(RAND_MAX);
}
int main(int, char *[])
{
Board board;
board.clear(Color(233, 250, 140));
board.setLineWidth(0.25);
srand(static_cast<unsigned int>(time(nullptr)));
double angle = 0.0;
board << LibBoard::rectangle(-8, 12, 16, 24, Color::Black, Color::Null, 0.1);
double radius = 10;
board.setFont(Fonts::CourierBold, 2);
for (int i = 0; i < 45; ++i) {
angle = i * (2 * M_PI / 45);
board.setPenColorRGBf(random_gray(), random_gray(), random_gray());
board.setFillColor(board.penColor());
board.drawArrow(0, 0, radius * cos(angle), radius * sin(angle));
radius += 0.4;
board.setLineWidth(0.1);
board.setPenColorRGBi(255, 0, 0);
board.drawDot(radius * cos(angle), radius * sin(angle));
std::stringstream s;
s << i;
board.drawText(radius * cos(angle), radius * sin(angle), s.str());
}
board.setPenColorRGBi(0, 0, 0);
board.setFont(Fonts::PalatinoRoman, 24);
board.drawText(0, 15, "Arrows");
board << LibBoard::rectangle(board.boundingBox(IgnoreLineWidth));
Rect rect = board.last<Polyline>().boundingBox(UseLineWidth);
board.setPenColor(Color::Red);
board.setFillColor(Color::Green);
board.setLineWidth(1);
board.drawArrow(rect.topLeft(), rect.bottomRight());
Rect rect2(10, 90, 40, 40);
board.drawArrow(rect2.topLeft(), rect2.topRight());
board.drawArrow(rect2.topRight(), rect2.bottomRight());
board.drawArrow(rect2.bottomRight(), rect2.bottomLeft());
board.drawArrow(rect2.bottomLeft(), rect2.topLeft());
// board.saveEPS( "arrows_A4.eps", Board::A4, 2.0, Board::UCentimeter );
// board.saveSVG( "arrows_A4.svg", Board::A4 );
// board.saveFIG( "arrows.fig" );
board.scaleToWidth(20, UseLineWidth);
board.saveSVG("arrows.svg", Board::BoundingBox, 0.0, Board::UCentimeter);
board.saveEPS("arrows.eps", Board::BoundingBox, 0.0, Board::UCentimeter);
board.saveFIG("arrows.fig", 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::ShapeList::last
T & last(const std::size_t position=0)
Definition: ShapeList.h:501
LibBoard::Board::setFillColor
Board & setFillColor(const Color &color)
Definition: Board.cpp:268
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::Board::penColor
const Color & penColor() const
penColor
Definition: Board.h:1026
LibBoard::Board::setFont
Board & setFont(const Fonts::Font font, double fontSize)
Definition: Board.cpp:280
LibBoard::Rect
Struct representing a rectangle on the plane.
Definition: Rect.h:39
LibBoard::Board::drawDot
void drawDot(double x, double y)
Definition: Board.cpp:298
LibBoard::Board::setPenColorRGBi
Board & setPenColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition: Board.cpp:232
LibBoard::Board::drawText
void drawText(double x, double y, const char *text)
Definition: Board.cpp:428
LibBoard::Board::setPenColorRGBf
Board & setPenColorRGBf(float red, float green, float blue, float alpha=1.0f)
Definition: Board.cpp:238
LibBoard::Board::drawArrow
void drawArrow(double x1, double y1, double x2, double y2, Arrow::ExtremityType type=Arrow::Plain)
Definition: Board.cpp:313
Board.h
Declaration of the Board class.
LibBoard::Board::clear
void clear(const Color &color=Color::Null)
Definition: Board.cpp:149
LibBoard::Board
Class for EPS, FIG or SVG drawings.
Definition: Board.h:62
LibBoard::Board::setPenColor
Board & setPenColor(const Color &color)
Definition: Board.cpp:244
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::ShapeList::boundingBox
Rect boundingBox(LineWidthFlag) const override
Definition: ShapeList.cpp:419
LibBoard::Color
Structure representing an RGB triple.
Definition: Color.h:43