code: выбор размера шрифта svg

master
Грудинин Егор 1 год назад
Родитель b883ab03d8
Сommit 6e021a4b71

@ -14,8 +14,8 @@ const auto BLOCK_WIDTH = 10;
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
void void
svg_text(double left, double baseline, string text) { svg_text(double left, double baseline, int font_size, string text) {
cout << "<text x='" << left << "' y='" << baseline << "'>" << text << "</text>"; cout << "<text x='" << left << "' y='" << baseline << "' font-size='" << font_size << "'>" << text << "</text>";
} }
void void
@ -40,6 +40,20 @@ svg_end() {
void void
show_histogram_svg(const vector<size_t>& bins) { show_histogram_svg(const vector<size_t>& bins) {
int font_size = 12;
bool flag = true;
while(flag) {
cerr << "Enter font size (8-32): ";
cin >> font_size;
if (font_size < 8) {
cerr << "Font size is too small. Please enter a value between 8 and 32." << endl;
} else if (font_size > 32) {
cerr << "Font size is too large. Please enter a value between 8 and 32." << endl;
} else {
flag = false;
}
}
const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH;
size_t max_count = 0; size_t max_count = 0;
for (size_t x : bins) { for (size_t x : bins) {
@ -58,10 +72,9 @@ show_histogram_svg(const vector<size_t>& bins) {
double top = 0; double top = 0;
for (size_t bin : bins) { for (size_t bin : bins) {
double bin_width = BLOCK_WIDTH * bin * scale_factor; double bin_width = BLOCK_WIDTH * bin * scale_factor;
svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); svg_text(TEXT_LEFT, top + TEXT_BASELINE, font_size, to_string(bin));
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT); svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT);
top += BIN_HEIGHT; top += BIN_HEIGHT;
} }
svg_end(); svg_end();
} }

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