From 3661762f5a893cbdb4267274a2d061a26ab18665 Mon Sep 17 00:00:00 2001 From: KnyazevSK Date: Mon, 22 May 2023 03:07:05 +0400 Subject: [PATCH] code: variant 7+- --- main.cpp | 1 - svg.cpp | 13 ++++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index 960367a..b309dd9 100644 --- a/main.cpp +++ b/main.cpp @@ -35,7 +35,6 @@ int main() auto in = input_data(); auto bins = make_histogram(in.numbers, in.bin_count); show_histogram_svg(bins); - getch(); return 0; } diff --git a/svg.cpp b/svg.cpp index 619aecd..ee18700 100644 --- a/svg.cpp +++ b/svg.cpp @@ -4,6 +4,7 @@ #include #include #include "swg.h" +#include "sr.h" using namespace std; @@ -38,6 +39,7 @@ svg_rect(double x, double y, double width, double height, string stroke = "black } + void show_histogram_svg(const vector& bins) { @@ -50,8 +52,10 @@ show_histogram_svg(const vector& bins) const auto BLOCK_WIDTH = 10; const auto BLACK = "black"; const auto RED = "red"; + const auto GREEN = "green"; const auto MAX_WIDTH = IMAGE_WIDTH-TEXT_WIDTH; + size_t x = sr(bins); svg_begin(IMAGE_WIDTH,IMAGE_HEIGHT); @@ -65,11 +69,18 @@ show_histogram_svg(const vector& bins) } } + for (size_t bin : bins) { double bin_width = (MAX_WIDTH)*(bin/max_count); svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); - svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, BLACK, RED); + if (bin_width<=MAX_WIDTH/max_count*x) + { + svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, BLACK, GREEN); + } + else{ + svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, BLACK, RED); + } top += BIN_HEIGHT; }