Generating large circles using scircle
古いコメントを表示
Hello. I have a question about scircle2 function. Basically I am using that function to generate a circle given centre and radius like this
[lat, lon] = scircle2(centreX,centreY,centreX+rad,centreY);
and then i plot this using
plot(lat,lon);
For small values of cen and rad, i can see the circle no problem. But for large values say over 100, the lat and lon are messed up and the circle is messed up too. Is there a problem with large values with this function? If so, how can i generate a matrix that contains the circle so i can plot it?
採用された回答
その他の回答 (1 件)
Walter Roberson
2016 年 7 月 31 日
I do not think there is any problem. When you start crossing the poles then the points that are a particular distance away (which is what scircle2 calculates) stops being a simple circle.
For example, modifying the example from scircle2:
axesm('mercator','MapLatlimit',[-90 90],'MapLonLimit',[-180 180]);
load coast
plotm(lat,long,'k');
lat1 = -48; lon1 = 77.5;
plotm(lat1, lon1, 'b*');
lat2 = lat1 + [0 10 20 30 40 50 60 70 80 90 100].';
lon2 = repmat(85.5, size(lat2));
plotm(lat2, lon2, 'r*');
[latc,lonc] = scircle2(lat1,lon1,lat2,lon2);
plotm(latc,lonc,'g');

Once your small circle is big enough to cross the pole, then there start to be points to the side that are the right distance away
カテゴリ
ヘルプ センター および File Exchange で 2-D and 3-D Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!