主要内容

本页采用了机器翻译。点击此处可查看英文原文。

生成小圆

小圆是平面与球面相交形成的圆,例如地球球面投影上的纬线。您可以使用 scircle2 函数,以中心点和周长上的一点为参数,生成一个小圆。您可以使用 scircle1 函数,根据中心点和半径的弧长生成一个小圆。

在此示例中,请使用 scircle2 函数绘制一个包围挪威、瑞典和芬兰的小圆,然后使用 scircle1 函数绘制一个完全相同的小圆。

首先,指定中心点和周长上某一点的坐标。使用 scircle2 函数求出构成该小圆的 100 个点的坐标。

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)

Center point, perimeter point, and small circle plotted in red on a geographic globe

另请参阅

|