В этом примере показано, как наложить многоугольники с помощью логики set. The polybool
функция может выполнять стандартные операции набора, такие как пересечение, объединение, вычитание и исключающее ИЛИ, для двух наборов векторов, которые могут представлять пары координат x-y или широты-долготы. Для получения дополнительной информации см. Раздел «Логика набора многоугольников»
Чтобы проиллюстрировать эти операции набора, создайте 12-сторонний многоугольник и треугольник, который перекрывается с ним.
az = (0:pi/6:2*pi)'; lat1 = cos(az); lon1 = sin(az); lat2 = [0 1 -1 0]'; lon2 = [0 2 2 0]';
Постройте график двух фигур с синей и красными линиями. Вычислите многоугольник пересечения с помощью polybool
и постройте график с помощью geoshow
.
figure axesm miller plotm(lat1,lon1,'b') plotm(lat2,lon2,'r') [loni,lati] = polybool('intersection',lon1,lat1,lon2,lat2); [lati loni]
ans = 5×2
0.0000 1.0000
-0.4409 0.8819
0.0000 0
0.4409 0.8819
0.0000 1.0000
geoshow(lati,loni,'DisplayType','polygon')
Постройте график двух фигур с синей и красными линиями. Вычислите многоугольник объединения с помощью polybool
и постройте график с помощью geoshow
.
figure axesm miller plotm(lat1,lon1,'b') plotm(lat2,lon2,'r') [lonu,latu] = polybool('union',lon1,lat1,lon2,lat2); [latu lonu]
ans = 16×2
-1.0000 2.0000
-0.4409 0.8819
-0.5000 0.8660
-0.8660 0.5000
-1.0000 0.0000
-0.8660 -0.5000
-0.5000 -0.8660
0.0000 -1.0000
0.5000 -0.8660
0.8660 -0.5000
⋮
geoshow(latu,lonu,'DisplayType','polygon')
Постройте график двух фигур с синей и красными линиями. Вычислите многоугольник Exclusive-Or с помощью polybool
и постройте график с помощью geoshow
.
figure axesm miller plotm(lat1,lon1,'b') plotm(lat2,lon2,'r') [lonx,latx] = polybool('xor',lon1,lat1,lon2,lat2); [latx lonx]
ans = 22×2
-1.0000 2.0000
-0.4409 0.8819
-0.5000 0.8660
-0.8660 0.5000
-1.0000 0.0000
-0.8660 -0.5000
-0.5000 -0.8660
0.0000 -1.0000
0.5000 -0.8660
0.8660 -0.5000
⋮
geoshow(latx,lonx,'DisplayType','polygon')
Постройте график двух фигур с синей и красными линиями. Вычесть треугольник Exclusive-Or из 12-стороннего многоугольника и построить график получившегося вогнутого многоугольника с помощью geoshow
.
figure axesm miller plotm(lat1,lon1,'b') plotm(lat2,lon2,'r') [lonm,latm] = polybool('minus',lon1,lat1,lon2,lat2); [latm lonm]
ans = 15×2
0.8660 0.5000
0.5000 0.8660
0.4409 0.8819
0.0000 0
-0.4409 0.8819
-0.5000 0.8660
-0.8660 0.5000
-1.0000 0.0000
-0.8660 -0.5000
-0.5000 -0.8660
⋮
geoshow(latm,lonm,'DisplayType','polygon')