Цифровой гироскопический датчик предназначен для измерения угла и
направления вращения робота, а также скорости его вращения. Точность
измерения составляет +/-30 , максимальная скорость проведения измерений
4400/сек., частота опроса датчика 1кГц.
Будучи включенным, при длительном нахождении робота в неподвижном
состоянии, определяемое значение угла не остаётся постоянным, а ошибочно
меняется или дрейфует. Поэтому, чем больше времени проходит от начала
первого обращения к гироскопическому датчику до чтения показаний, тем
менее точным становятся результаты за счёт систематического накопления
ошибки. Поэтому перед началом каждого измерения всегда необходимо
производить обнуление угла при режима Сброс.
Сорян, это всё что я знаю о лего
С++20
Цифровой гироскопический датчик предназначен для измерения угла и
направления вращения робота, а также скорости его вращения. Точность
измерения составляет +/-30 , максимальная скорость проведения измерений
4400/сек., частота опроса датчика 1кГц.
Будучи включенным, при длительном нахождении робота в неподвижном
состоянии, определяемое значение угла не остаётся постоянным, а ошибочно
меняется или дрейфует. Поэтому, чем больше времени проходит от начала
первого обращения к гироскопическому датчику до чтения показаний, тем
менее точным становятся результаты за счёт систематического накопления
ошибки. Поэтому перед началом каждого измерения всегда необходимо
производить обнуление угла при режима Сброс.
Сорян, это всё что я знаю о лего
С++20
#include <iostream>#include <vector>class Point {public: int x, y; Point() = default; Point(const Point &) = default; Point(int _x, int _y) : x(_x), y(_y) {} Point operator + (const Point& p) const { return Point {x + p.x, y + p.y}; } Point operator - (const Point& p) const { return Point {x - p.x, y - p.y}; } std::vector<Point> operator & (const Point& p) const { return std::vector<Point> { Point {x + p.x, y + p.y}, Point {x - p.x, y + p.y}, Point {x + p.x, y - p.y}, Point {x - p.x, y - p.y}, Point {x + p.y, y + p.x}, Point {x - p.y, y + p.x}, Point {x + p.y, y - p.x}, Point {x - p.y, y - p.x}, }; } static Point max (const Point& p1, const Point& p2) { return Point {std::max(p1.x, p2.x), std::max(p1.y, p2.y)}; } static Point min (const Point& p1, const Point& p2) { return Point {std::min(p1.x, p2.x), std::min(p1.y, p2.y)}; } [[nodiscard]] int distance_to_by_ch (const Point & p) const { return std::max(std::abs(p.x - x), std::abs(p.y - y)); } [[nodiscard]] int distance_to_by_m (const Point & p) const { return std::abs(p.x - x) + std::abs(p.y - y); } friend std::ostream &operator << (std::ostream &os, Point const &p) { return os << "(" << p.x << ";" << p.y << ")"; } Point & operator = (const Point &) = default; bool operator == (const Point & p) const { return x == p.x && y == p.y; }};class Horse {public: const Point p; explicit Horse (const Point position) : p(position) { } [[nodiscard]] bool can_I_kill_this_guy (const Point & m) const { auto field = p & Point{2, 3}; return std::find(field.begin(), field.end(), m) != field.end(); }};std::istream &to_number(std::istream &stream) { char ch; do { ch = stream.get(); } while (!isalpha(ch)); if (isupper(ch)) ch -= 16; else ch -= 48; stream.putback(ch); return stream;}int main () { Point horse_p{}, stranger_p{}; std::cin >> horse_p.x >> to_number >> horse_p.y; std::cin >> stranger_p.x >> to_number >> stranger_p.y; Horse jack(horse_p); std::cout << "I am a Horse placed on " << jack.p << ". " << "Can I kill those guy on " << stranger_p << "? " << "-> " << std::boolalpha << jack.can_I_kill_this_guy(stranger_p); }