diff --git a/histogram.cpp b/histogram.cpp index 13fd6e7..1d7932f 100644 --- a/histogram.cpp +++ b/histogram.cpp @@ -1,6 +1,6 @@ #include "histogram.h" -const void find_minmax(const std::vector& numbers, double& min, double& max) { +void find_minmax(const std::vector& numbers, double& min, double& max) { min = numbers[0]; max = numbers[0]; for (double x : numbers) { diff --git a/lab3.cbp b/lab3.cbp index 6781c04..24038a2 100644 --- a/lab3.cbp +++ b/lab3.cbp @@ -32,13 +32,22 @@ - + + - + + + + + + + diff --git a/main.cpp b/main.cpp index fd8e664..354ccc5 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,7 @@ #include #include "histogram.h" #include "text.h" +#include"svg.h" using namespace std; struct Input { @@ -25,7 +26,7 @@ input_data(){ int main() { auto in = input_data(); auto bins = make_histogram(in.numbers,in.bin_count); - show_histogram(bins,in.bin_count); + show_histogram_svg(bins); } diff --git a/svg.cpp b/svg.cpp new file mode 100644 index 0000000..c6c1a15 --- /dev/null +++ b/svg.cpp @@ -0,0 +1,46 @@ +#include"svg.h" +using namespace std; +void svg_begin(double width, double height) { + cout << "\n"; + cout << "\n"; +} + +void svg_end() { + cout << "\n"; +} +void +svg_text(double left, double baseline, string text) { + cout << ""<"; + +} +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,"red","#ffeeee"); + 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 new file mode 100644 index 0000000..7626df1 --- /dev/null +++ b/svg.h @@ -0,0 +1,7 @@ +#ifndef SVG_H_INCLUDED +#define SVG_H_INCLUDED +#include +#include +void show_histogram_svg(const std::vector& bins); + +#endif // SVG_H_INCLUDED