Сгенерируйте маленькие круги

Маленький круг является пересечением плоскости с поверхностью сферы, такой как параллель на сферическом представлении Земли. Можно сгенерировать маленький круг от центральной точки и точки на периметре при помощи 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)

Смотрите также

|