Графика в 2-D SFML в С++
Стал знакомиться с библиотекой SFML и поставил перед собой задачу изобразить в окне приложения2 графика функций на некотором промежутке. Но столкнулся с 2мя проблемами: 1) Каким образом изобразить оси координат? 2)Как соединять точки в линии, чтобы построить график? Буду очень рад, если поделитесь источником, в котором будет объяснена документация библиотеки на русском языке.
Ответы (1 шт):
Давайте подумаем, а что такое координатные оси? это просто две перпендикулярные линии. Все. Ну ок, ещё плюс по две-три маленькие линии или треугольник, что бы стрелочку сделать.
Вот документация, как нарисовать линию https://www.sfml-dev.org/documentation/2.0/classsf_1_1VertexArray.php
sf::VertexArray line(sf::Lines, 4); // Lines - у нас отдельные линии
line[0].position = sf::Vector2f(-10, 0); // первая линия
line[1].position = sf::Vector2f(10, 0);
line[2].position = sf::Vector2f(0, -10); // вторая
line[3].position = sf::Vector2f(0, 10);
window.draw(line);
все, уже есть две перпендикулярные линии.
Теперь в к торой половине вопроса. Тут можно либо рисовать кучу точек и экспериментально подобрать подходящее количество. Либо использовать метод выше, просто вместо sf::Lines использовать sf::LineStrip - в этом случае точки будут определять точки ломанной. Да, она ломанная, но на первый подход сойдет.