#include <cmath>
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
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 *[])
{
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.
drawArrow(0, 0, radius * cos(angle), radius * sin(angle));
radius += 0.4;
board.
drawDot(radius * cos(angle), radius * sin(angle));
std::stringstream s;
s << i;
board.
drawText(radius * cos(angle), radius * sin(angle), s.str());
}
board.
setFont(Fonts::PalatinoRoman, 24);
board << LibBoard::rectangle(board.
boundingBox(IgnoreLineWidth));
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.
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);
}
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
T & last(const std::size_t position=0)
Definition: ShapeList.h:501
Board & setFillColor(const Color &color)
Definition: Board.cpp:268
A polygonal line described by a series of 2D points.
Definition: Polyline.h:38
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const
Definition: Board.cpp:758
Shape & scaleToWidth(double w, LineWidthFlag lineWidthFlag)
Definition: Shape.cpp:85
const Color & penColor() const
penColor
Definition: Board.h:1026
Board & setFont(const Fonts::Font font, double fontSize)
Definition: Board.cpp:280
Struct representing a rectangle on the plane.
Definition: Rect.h:39
void drawDot(double x, double y)
Definition: Board.cpp:298
Board & setPenColorRGBi(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=255)
Definition: Board.cpp:232
void drawText(double x, double y, const char *text)
Definition: Board.cpp:428
Board & setPenColorRGBf(float red, float green, float blue, float alpha=1.0f)
Definition: Board.cpp:238
void drawArrow(double x1, double y1, double x2, double y2, Arrow::ExtremityType type=Arrow::Plain)
Definition: Board.cpp:313
Declaration of the Board class.
void clear(const Color &color=Color::Null)
Definition: Board.cpp:149
Class for EPS, FIG or SVG drawings.
Definition: Board.h:62
Board & setPenColor(const Color &color)
Definition: Board.cpp:244
void saveFIG(const char *filename, PageSize size=Board::BoundingBox, double margin=0.0, Unit unit=UMillimeter) const
Definition: Board.cpp:629
Board & setLineWidth(double width)
Definition: Board.cpp:274
Rect boundingBox(LineWidthFlag) const override
Definition: ShapeList.cpp:419
Structure representing an RGB triple.
Definition: Color.h:43