Сравнить коммиты

...

2 Коммитов

@ -8,6 +8,7 @@ using namespace std;
struct Input {
vector<double> numbers;
size_t bin_count{};
string stroke;
};
Input
@ -26,6 +27,9 @@ input_data() {
cerr << "Enter bin count: ";
cin >> in.bin_count;
cerr << "Enter stroke colour:";
cin >> in.stroke;
return in;
}
@ -35,6 +39,6 @@ int main()
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
auto in = input_data();
auto bins = make_histogram(in.numbers, in.bin_count);
show_histogram_svg(bins);
show_histogram_svg(bins, in.stroke);
return 0;
}

@ -1,8 +1,8 @@
#include <iostream>
#include <vector>
#include <string>
#include "svg.h"
using namespace std;
void
svg_begin(double width, double height) {
cout << "<?xml version='1.0' encoding='UTF-8'?>\n";
@ -24,14 +24,14 @@ svg_text(double left, double baseline, string text) {
}
void
svg_rect(double x, double y, double width, double height, string stroke, string fill) {
svg_rect(double x, double y, double width, double height, string& stroke, string fill) {
cout << "<rect x='" << x << "' y='" << y << "' width='" << width << "' height='" << height << "' stroke='" << stroke << "' fill='" << fill << "' />";
}
void
show_histogram_svg(const vector<double>& bins) {
show_histogram_svg(const vector<double>& bins, string stroke) {
const auto IMAGE_WIDTH = 400;
const auto IMAGE_HEIGHT = 300;
const auto TEXT_LEFT = 20;
@ -47,13 +47,13 @@ show_histogram_svg(const vector<double>& bins) {
max_count = (bin * BLOCK_WIDTH);
}
}
svg_begin(400, 300);
double top = 0;
for (double bin : bins) {
const double bin_width = MAX_WIDTH * ((BLOCK_WIDTH * bin) / max_count);
svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, "blue", "#aaffaa");
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, stroke, "red");
top += BIN_HEIGHT;
}
svg_end();

@ -1,3 +1,4 @@
#pragma once
#include <vector>
void show_histogram_svg(const std::vector<double>& bins);
#include <string>
void show_histogram_svg(const std::vector<double>& bins, std::string stroke);

Загрузка…
Отмена
Сохранить