Generating large circles using scircle
Ältere Kommentare anzeigen
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?
Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 31 Jul. 2016
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
1 Kommentar
Sam Tong
am 31 Jul. 2016
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!