From 6bdb705ac806a1817927ddba15704d4db2a7b0d2 Mon Sep 17 00:00:00 2001 From: MrDarkLast Date: Sun, 23 Apr 2023 18:18:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=B2=20svg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab1.cpp | 7 +++---- svg.cpp | 28 ++++++++++++++++++++++++++++ svg.h | 6 ++++-- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/lab1.cpp b/lab1.cpp index fc7e837..03d9607 100644 --- a/lab1.cpp +++ b/lab1.cpp @@ -23,11 +23,10 @@ input_data() { Input in; in.numbers.resize(number_count); - for (size_t i = 0; i < number_count; i++) { - cin >> in.numbers[i]; - } + for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; + } - cout << "Enter number of bins"; cin >> in.bin_count; return in; } diff --git a/svg.cpp b/svg.cpp index ebef607..ac781dc 100644 --- a/svg.cpp +++ b/svg.cpp @@ -1,5 +1,6 @@ #include #include "svg.h" +#include using namespace std; @@ -19,7 +20,34 @@ svg_end() { } +void +svg_text(double left, double baseline, string text) { + cout << " " << text << ""; +} + +void svg_rect(double x, double y, double width, double height, string stroke, string fill) { + cout << "" << ""; +} + void show_histogram_svg(const vector& bins) { + const auto IMAGE_WIDTH = 400; + const auto IMAGE_HEIGHT = 300; + const auto TEXT_LEFT = 20; + const auto TEXT_BASELINE = 20; + const auto TEXT_WIDTH = 50; + const auto BIN_HEIGHT = 30; + const auto BLOCK_WIDTH = 10; + svg_begin(400, 300); + //svg_text(20, 20, to_string(bins[0])); + //svg_rect(50, 0, bins[0] * 10, 30); + double top = 0; + for (size_t bin : bins) { + const double bin_width = BLOCK_WIDTH * bin; + svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); + svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, "red", "#ffeeee"); + top += BIN_HEIGHT; + } + svg_end(); } diff --git a/svg.h b/svg.h index 538bd01..7d8525d 100644 --- a/svg.h +++ b/svg.h @@ -1,7 +1,9 @@ #pragma once - +#include #include void svg_begin(double width, double height); void svg_end(); -void show_histogram_svg(const std::vector& bins); \ No newline at end of file +void svg_text(double left, double baseline, std::string text); +void svg_rect(double x, double y, double width, double height, std::string stroke, std::string fill); +void show_histogram_svg(const std::vector& bins);