diff --git a/fin_lab34.cpp b/fin_lab34.cpp index aa3620f..b124c60 100644 --- a/fin_lab34.cpp +++ b/fin_lab34.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include "histogram.h" #include "text.h" #include "svg.h" @@ -30,9 +31,13 @@ input_data(){ int main(){ double min = 0, max = 0; + size_t font = 0; Input in = input_data(); auto bins = make_histogram(in.numbers, in.bin_count); //for (auto now: bins) {cout << now << endl;} - show_histogram_svg(bins); + cin >> font; + show_histogram_svg(bins, font); return 0; } + +//с клавиатуры в marks.txt, с marks.txt в marks.svg diff --git a/svg.cpp b/svg.cpp index cbbb04c..071b9f1 100644 --- a/svg.cpp +++ b/svg.cpp @@ -18,15 +18,19 @@ svg_end() { cout << "\n"; } void -svg_text(double left, double baseline, string text){ - cout << "" << text << "" << endl; +svg_text(double left, double baseline, size_t font, string text){ + cout << "" << text << " " << endl; + return; } void svg_rect(double x, double y, double width, double height, string stroke = "#ed53a8", string fill = "#9df3a1"){ cout << "" << endl; + return; } + void -show_histogram_svg(const vector &bins) { +show_histogram_svg(const vector &bins, size_t &font) { + const auto IMAGE_WIDTH = 800; const auto IMAGE_HEIGHT = 600; const auto TEXT_LEFT = 20; @@ -38,15 +42,17 @@ show_histogram_svg(const vector &bins) { svg_begin(IMAGE_WIDTH, IMAGE_HEIGHT); double top = 0; size_t max_count = 0; + for (auto now: bins) {if (now > max_count) {max_count = now;}} for (size_t bin : bins){ double bin_width = BLOCK_WIDTH * bin; if (bin == max_count) {bin_width = MAX_VALUE * 1.0;} else {bin_width = MAX_VALUE * (static_cast (bin) / max_count);} - svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); + svg_text(TEXT_LEFT, top + TEXT_BASELINE, font, to_string(bin)); svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT); top += BIN_HEIGHT; } svg_end(); + return; } diff --git a/svg.h b/svg.h index 6421fce..d669680 100644 --- a/svg.h +++ b/svg.h @@ -10,11 +10,14 @@ void svg_end(); void -svg_text(double left, double baseline, string text); +svg_text(double left, double baseline, size_t font, string text); + +size_t +enter_font_size(size_t &font); void svg_rect(double x, double y, double width, double height, string stroke, string fill); void -show_histogram_svg(const vector &bins); +show_histogram_svg(const vector &bins, size_t &font); #endif // SVG_H_INCLUDED