Board  0.9.5
examples/graph.cpp
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <vector>
#include "Board.h"
using namespace std;
using namespace LibBoard;
int coordinate(int width)
{
return 1 + (int)(width * (rand() / (RAND_MAX + 1.0)));
}
int main(int, char *[])
{
Board board;
board.clear(Color::White);
vector<Point> points;
vector<Point>::iterator i1, i2, end;
int n = 22;
while (n--) {
points.push_back(Point(coordinate(40), coordinate(40)));
}
end = points.end();
i1 = points.begin();
while (i1 != end) {
i2 = i1;
Color pen = Color::fromHueColormap(static_cast<float>(Tools::boardRandDouble()));
while (i2 != end) {
if (i1 != i2 && !(rand() % 6)) {
board << Arrow(*i1, *i2, Arrow::Plain, pen, pen, 0.1);
Point v = (*i2 - *i1);
Point vn = v.normalised();
const double norm = v.norm();
board << Arrow(*i1, (*i1) + ((norm > 8) ? (vn * 8.0) : v), Arrow::Plain, pen, pen, 0.1).translated(45, 0);
}
++i2;
}
++i1;
}
i1 = points.begin();
while (i1 != end) {
board << LibBoard::circle(*i1, 0.25, Color::Black, Color::Black, 0);
board << LibBoard::circle(*i1, 0.25, Color::Black, Color::Black, 0).translated(45, 0);
++i1;
}
board.saveEPS("graph.eps", 100, 100);
board.saveFIG("graph.fig", 100, 100);
board.scaleToWidth(25, UseLineWidth);
board.saveSVG("graph.svg", Board::BoundingBox, 2.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::Arrow::translated
Arrow translated(double dx, double dy) const
Definition: Arrow.cpp:66
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::Arrow
A line between two points with an arrow at one extremity.
Definition: Arrow.h:38
LibBoard::Point::normalised
Point normalised() const
Definition: Point.h:403
LibBoard::Point
Struct representing a 2D point.
Definition: Point.h:42
LibBoard::Ellipse::translated
Ellipse translated(double dx, double dy) const
Definition: Ellipse.cpp:93
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::Point::norm
double norm() const
Definition: Point.h:398
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::Color
Structure representing an RGB triple.
Definition: Color.h:43