• Предмет: Информатика
  • Автор: khalin1609
  • Вопрос задан 4 месяца назад

(C++) Дано дійсні числа х, у. Визначити, чи належить точка з координатами х, у заштрихованій частині площині

Приложения:

Ответы

Ответ дал: Zefir13000
1

Ответ:

#include <iostream>

#include <vector>

struct Point {

double x, y;

Point(double x, double y) : x(x), y(y) {}

};

bool isPointInsidePolygon(const Point& point, const std::vector<Point>& polygon) {

int numVertices = polygon.size();

bool isInside = false;

for (int i = 0, j = numVertices - 1; i < numVertices; j = i++) {

if ((polygon[i].y > point.y) != (polygon[j].y > point.y) &&

(point.x < (polygon[j].x - polygon[i].x) * (point.y - polygon[i].y) / (polygon[j].y - polygon[i].y) + polygon[i].x)) {

isInside = !isInside;

}

}

return isInside;

}

int main() {

// Вершини полiгона

std::vector<Point> polygon = {

Point(-2, -1),

Point(-1, 1),

Point(0, 0),

Point(1, 0)

};

 // Точка для перевiрки

Point testPoint(-1, 0);

// Перевiримо чи належить точка площині

if (isPointInsidePolygon(testPoint, polygon)) {

std::cout << "Точка належить площині." << std::endl;

} else {

std::cout << "Точка не належить площині." << std::endl;

}

return 0;

}

Объяснение:



Вас заинтересует