Помнится в моем 2007 я пилил большой проект, частью этого проекта была проверка пересечения многоугольников выраженных через географические координаты, естественно многоугольники лежали не на плоскости, а на сфере.
Получив доступ к бесплатной версии ChatGPT я долго задавал глупые вопросы, всё больше не по программированию, но дошло дело и до него.
Вот тогда я зашел с козырей.
В 2007 я не смог найти в сети формулы которые бы решали мою проблему, к счаастью был добрый человек который подсказал взять библиотеку от сиквела, которая всё что мне надо было делать умела.
Ну так вот, ИИ не знает как это делать, или не хочет светить бесплатно какую-то вселенскую тайну:
Промт:
напиши программу на c# которая получает в аргументах массивы географических координат в виде чисел с плавающей запятой, и позволяющая определить пересечение многоуглльников
Ответ:
using System;
class Program
{
static void Main(string[] args)
{
// Проверка, что в аргументах переданы два массива координат
if (args.Length != 2)
{
Console.WriteLine("Используйте программу с двумя аргументами, представляющими координаты многоугольников.");
return;
}
// Парсим координаты первого и второго многоугольников
double[] polygon1 = ParseCoordinates(args[0]);
double[] polygon2 = ParseCoordinates(args[1]);
// Определяем, пересекаются ли многоугольники
bool intersection = PolygonIntersect(polygon1, polygon2);
if (intersection)
{
Console.WriteLine("Многоугольники пересекаются.");
}
else
{
Console.WriteLine("Многоугольники не пересекаются.");
}
}
// Метод для парсинга координат из строки
static double[] ParseCoordinates(string input)
{
string[] coordinates = input.Split(',');
double[] result = new double[coordinates.Length];
for (int i = 0; i < coordinates.Length; i++)
{
result[i] = double.Parse(coordinates[i]);
}
return result;
}
// Метод для определения пересечения многоугольников
static bool PolygonIntersect(double[] polygon1, double[] polygon2)
{
// Ваш код для определения пересечения многоугольников
// Здесь должен быть ваш алгоритм для определения пересечения многоугольников.
// Верните true, если многоугольники пересекаются, и false в противном случае.
return false;
}
}
То есть эта штука попросту отказалась работать, скажите а подписочная версия готова решить эту задачу?