Маленький круг является пересечением плоскости с поверхностью сферы, такой как параллель на сферическом представлении Земли. Можно сгенерировать маленький круг от центральной точки и точки на периметре при помощи scircle2
функция. Можно сгенерировать маленький круг от центральной точки и длины дуги радиуса при помощи scircle1
функция.
В данном примере создайте маленький круг, который окружает Норвегию, Швецию и Финляндию при помощи scircle2
функционируйте и затем создайте идентичный маленький круг при помощи scircle1
функция.
Во-первых, задайте координаты центральной точки и точки вдоль периметра. Найдите координаты 100 точек, которые составляют маленький круг при помощи scircle2
функция.
centerLat = 62;
centerLon = 20;
perimeterLat = 72;
perimeterLon = 19;
[lat2,lon2] = scircle2(centerLat,centerLon, ...
perimeterLat,perimeterLon);
Вычислите длину дуги в градусах между центральной точкой и точкой вдоль периметра. Найдите координаты того же маленького круга при помощи scircle1
функция.
[arclen,~] = distance(centerLat,centerLon, ...
perimeterLat,perimeterLon);
[lat1,lon1] = scircle1(centerLat,centerLon,arclen);
Проверьте, что маленькие круги идентичны в допуске.
dLat = abs(lat1-lat2); dLon = abs(lon1-lon2); all(dLat < 1e-12)
ans = logical
1
all(dLon < 1e-12)
ans = logical
1
Отобразите центральную точку, точку периметра и маленький круг на поверхности географического земного шара. Измените представление при помощи campos
функция.
uif = uifigure; g = geoglobe(uif,'Terrain','none'); hold(g,'on') geoplot3(g,centerLat,centerLon,0,'ro','LineWidth',2) geoplot3(g,perimeterLat,perimeterLon,0,'ro','LineWidth',2) geoplot3(g,lat1,lon1,0,'r','LineWidth',2) campos(g,40,-18,10000000)