@NORMgg

Как закрасить область пересечения двух функций в SFML?

Задание: Задана криволинейная трапеция, ограниченная двумя пересекающимися линиями – f1(x) и f2(x). Найти абсциссы точек пересечения этих линий (a,b). Вывести в графическом режиме графики этих линий, указав соответствующие надписи. Площадь образованной линиями трапеции закрасить заданным цветом.
f1(x)= x*x, f2(x)= cos(x), голубой.

Сделал отображение двух функций, а как закрасить область их пересечения не знаю.
#include <cmath>
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
	const int SIZE = 600;
	float h = 0.5;
	float x = -100;
	int zoom = 30;
	RenderWindow window(VideoMode(SIZE, SIZE),"lab11");
	VertexArray line1(LinesStrip, SIZE);
	VertexArray line2(LinesStrip, SIZE);
	for (int i = 0; i<SIZE; i++, x += h)
	{
		line1[i].position = Vector2f(SIZE / 2 + x*zoom, SIZE / 2 - x * x*zoom);
		line1[i].color = Color::White;		
		line2[i].position = Vector2f(SIZE / 2 + x * zoom, SIZE / 2 - cos(x) * zoom);
		line2[i].color = Color::Green;
	}
	while (window.isOpen())
	{
		Event event;
		while (window.pollEvent(event))
			if (event.type == Event::Closed)
				window.close();
		window.clear();
		window.draw(line1);
		window.draw(line2);
		window.display();
	}
}

5fc63a01be549690851008.png
Можно использовать любую графическую библиотеку, но я уже делал несколько лабораторных на SFML и было все нормально.
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
@NORMgg Автор вопроса
Сам задал вопрос, сам отвечу. В SFML нет функции для закрашивания, как в graphics.h - floodfill(). Люди на форумах пишут, что ее не сложно реализовать самому по данному алгоритму.
Как написать данный алгоритм на C++?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 янв. 2021, в 19:18
160000 руб./за проект
19 янв. 2021, в 18:59
40000 руб./за проект
19 янв. 2021, в 18:41
1000 руб./за проект