diff --git a/svg.cpp b/svg.cpp index fb8a895..0f4876b 100644 --- a/svg.cpp +++ b/svg.cpp @@ -3,14 +3,6 @@ #include "svg.h" // #include"svg_rect.h" -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; - void svg_begin(double width, double height) { std::cout << "\n"; @@ -26,35 +18,59 @@ void svg_end() std::cout << "\n"; } -void svg_text(double left, double baseline, std::string text) +void svg_text(double left, double baseline, std::string text, int check) { // std::cout << "text"; - std::cout << " " << text << " "; + if (check == 0) + { + std::cout << " uncorectly width of image "; + //std::cout << "uncorectly width of image "; //больше 100 ничего нет + } + + if (check == 1) + { + std::cout << " " << text << " "; + } // std::cout << "2"; } -void svg_rect(double x, double y, double width, double height) +void svg_rect(double x, double y, double width, double height, int check) { + //if (check == 0) + //{ + //std::cout << "uncorectly width of image"; + //} - std::cout << ""; + if ( check == 1) + { + std::cout << ""; + } } -void show_histogram_svg(const std::vector &bins) +void show_histogram_svg(const std::vector &bins, size_t IMAGE_WIDTH) { - const auto SCALE = (IMAGE_WIDTH - TEXT_WIDTH); - const auto IMAGE_WIDTH = 400; + + // std::cout << IMAGE_WIDTH < 70 && IMAGE_WIDTH < 800){ + + // return 1; + 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; + const auto SCALE = (IMAGE_WIDTH - TEXT_WIDTH); svg_begin(IMAGE_WIDTH, IMAGE_HEIGHT); double top = 0; for (size_t bin : bins) { + int check = 0; double bin_width = BLOCK_WIDTH * bin; if (bin_width > SCALE) @@ -62,8 +78,16 @@ void show_histogram_svg(const std::vector &bins) bin_width = SCALE; } - svg_text(TEXT_LEFT, top + TEXT_BASELINE, std::to_string(bin)); - svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT); + //if (IMAGE_WIDTH < 70 && IMAGE_WIDTH > 800) + //{ + //check = 0; + //} + if (IMAGE_WIDTH > 70 && IMAGE_WIDTH < 800 && IMAGE_WIDTH > 1./3*(bin*BLOCK_WIDTH)) + { + check = 1; + } + svg_text(TEXT_LEFT, top + TEXT_BASELINE, std::to_string(bin), check); + svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, check); top += BIN_HEIGHT; }