Locus No Pilotus
Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++
Loading...
Searching...
No Matches
segment.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
4#include "base.h"
5#include "lib/segment.h"
6
7namespace gui {
8
9/**
10 * @brief Фигура отрезка траектории
11 * @details Фигура представляет собой отрезок или дугу окружности синего цвета
12 */
13class Segment : private Drawable {
14 public:
15 Segment() = default;
16
17 Segment(const lib::Segment& data) : data_{data} {}
18
19 Segment(const lib::Point& start, const lib::Point& end) : data_(start, end) {}
20
21 Segment(const lib::Point& start, const lib::Point& end,
22 const lib::Point& center)
23 : data_(start, end, center) {}
24
25 double Radius() { return data_.Radius(); }
26
27 /// @brief Возвращает начало сегмента
28 lib::Point& Start() { return data_.Start(); }
29
30 /// @brief Возвращает конец сегмента
31 lib::Point& End() { return data_.End(); }
32
33 /**
34 * @brief Возвращает центр окружности
35 * @return Point&: центр окружности
36 */
37 lib::Point& Center() { return data_.Center(); }
38
39 /**
40 * @brief Проверяет, является ли текущий сегмент дугой окружности
41 * @return true: да, является
42 * @return false: нет, не является
43 */
44 bool IsArc() { return data_.IsArc(); }
45
46 /**
47 * @brief Возвращает угловые коэффициенты на окружности
48 * @return std::pair<double, double>: угол первой точки, угол второй точки
49 */
50 std::pair<double, double> ToAnglesOnCircle() {
51 return data_.ToAnglesOnCircle();
52 }
53
54 /**
55 * @brief Отрисовывает фигуру на полотне
56 * @details Фигура представляет собой отрезок или дугу окружности синего цвета
57 * @param plot: указатель на полотно
58 */
59 void Draw(QCustomPlot* plot) override;
60
61 private:
63
64 QColor color_{QColor(50, 100, 200, 255)};
65};
66
67} // namespace gui
Некоторая возможная к рисованию фигура [абстрактный класс].
Definition base.h:9
Фигура отрезка траектории
Definition segment.h:13
void Draw(QCustomPlot *plot) override
Отрисовывает фигуру на полотне
Definition segment.cpp:9
double Radius()
Definition segment.h:25
Segment(const lib::Point &start, const lib::Point &end, const lib::Point &center)
Definition segment.h:21
Segment(const lib::Segment &data)
Definition segment.h:17
lib::Segment data_
Definition segment.h:62
lib::Point & Start()
Возвращает начало сегмента
Definition segment.h:28
Segment(const lib::Point &start, const lib::Point &end)
Definition segment.h:19
lib::Point & Center()
Возвращает центр окружности
Definition segment.h:37
QColor color_
Definition segment.h:64
bool IsArc()
Проверяет, является ли текущий сегмент дугой окружности
Definition segment.h:44
std::pair< double, double > ToAnglesOnCircle()
Возвращает угловые коэффициенты на окружности
Definition segment.h:50
lib::Point & End()
Возвращает конец сегмента
Definition segment.h:31
Segment()=default
Сегмент математический траектории
Definition segment.h:12
std::pair< double, double > ToAnglesOnCircle()
Возвращает угловые коэффициенты на окружности
Definition segment.cpp:38
double Radius() const
Возвращает радиус окружности
Definition segment.cpp:32
Point & Center()
Возвращает центр окружности
Definition segment.cpp:20
Point & Start()
Возвращает начало сегмента
Definition segment.h:34
bool IsArc() const
Проверяет, является ли текущий сегмент дугой окружности
Definition segment.h:71
Point & End()
Возвращает конец сегмента
Definition segment.h:40
Definition airport.h:6
Математическая точка
Definition point.h:16