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);