Как установить начальную точку гистограммы

Я создаю гистограмму с использованием библиотеки SFML и Visual-C ++. Я хочу установить начальную точку гистограммы, поэтому я пытаюсь использовать функцию move и setOrigin, но она не может быть успешной.

sf::RectangleShape rec1(sf::Vector2f(stage1x*1000, stage1y*1000));
sf::RectangleShape rec2(sf::Vector2f(stage2x*1000, stage2y*1000));
sf::RectangleShape rec3(sf::Vector2f(stage3x*1000, stage3y*1000));

rec1.setOrigin(0, 0);
rec2.setOrigin(0, 0);
rec3.setOrigin(0, 0);

rec1.move(200, 700); // This moves the Rectangle over 200 pixels and down 700 pixels
rec2.move(300, 700); // This moves the Rectangle over 300 pixels and down 700 pixels
rec3.move(400, 700); // This moves the Rectangle over 400 pixels and down 700 pixels

rec1.setFillColor(sf::Color(100, 250, 50));
rec2.setFillColor(sf::Color(10, 20, 100));
rec3.setFillColor(sf::Color(500, 600, 700));

Это картина моей гистограммы

0

Решение

Много разных подходов для этого. Например, вы можете установить высоту окна sf::View к отрицательному значению, которое по существу перевернуло бы все по вертикали (координаты бегут снизу вверх).

setOrigin() на чертежах SFML будет перемещаться только их локальное происхождение, то есть определять, какая точка выровнена относительно позиции, указанной в setPosition()̀, По умолчанию происхождение установлено на (0, 0)так что ваш код ничего не меняет.

Вместо того, чтобы использовать move()Я бы позвонил setPosition() напрямую (что устанавливает абсолютную позицию, а не относительную). Если вы хотите, чтобы стержни шли вверх, переверните вид, как описано выше, или просто вычтите высоту стержней из их положения Y.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector