У меня есть код ниже. Он загружает файл CSV в память. Этот файл содержит координаты для разных многоугольников. Каждая строка этого файла имеет координаты X, Y и строку, которая сообщает, какому многоугольнику принадлежит эта точка данных. например, многоугольник с именем «Poly1» со 100 точками данных имеет в этом файле 100 строк, например:
Poly1,X1,Y1 Poly1,X2,Y2 ... Poly1,X100,Y100 Poly2,X1,Y1 .....
В файле index.csv указано количество точек данных (количество строк) для каждого многоугольника в файле Polygons.csv. Эти детали не важны. Дело в том, что я могу успешно извлечь точки данных для каждого многоугольника, используя приведенный ниже код. Однако, когда я рисую, линии разных полигонов соединяются друг с другом, и сюжет выглядит паршиво. Мне нужно, чтобы полигоны были разделены (хотя они связаны и перекрывают некоторые области). Я думал, что с помощью «заливки» я смогу их лучше разглядеть. Но «заливка» просто заполняет каждый многоугольник, который он может найти, а это нежелательно. Я хочу заливать только внутри многоугольников. Кто-нибудь может мне помочь? Я также могу отправить вам свои данные, если необходимо, они меньше 200 Кб. Спасибо
[coordinates,routeNames,polygonData] = xlsread('Polygons.csv');
index = dlmread('Index.csv');
firstPointer = 0
lastPointer = index(1)
for Counter=2:size(index)
firstPointer = firstPointer + index(Counter) + 1
hold on
plot(coordinates(firstPointer:lastPointer,2),coordinates(firstPointer:lastPointer,1),'r-')
lastPointer = lastPointer + index(Counter)
end