Best way to calculate elliptical trajectory
3 ビュー (過去 30 日間)
古いコメントを表示
How do I calculate the ellptical trajectory on a spheroid at constant altitude if I know the center of ellipse and boundary points of imaginary rectangle?
% earth ref spheroid
wgs84 = wgs84Ellipsoid;
% Aircraft location
lat_aircraft = 45; %deg
lon_aircraft = 8; %deg
alt_aircraft = 5000; %m
%% Receiver extent
lon_extent = 0.5;
lat_extent = 1;
%% Find boundry points of rectangle, and add center of the location
lat_range = [lat_aircraft - (lat_extent/2), lat_aircraft, lat_aircraft + (lat_extent/2)];
lon_range = [lon_aircraft - (lon_extent/2), lon_aircraft, lon_aircraft + (lon_extent/2)];
latlonPts = [combvec(lat_range, lon_range)]';
geoplot(latlonPts(:,1), latlonPts(:,2),'*')
%% Create elliptical traj at constant altitude
0 件のコメント
回答 (1 件)
Adam Danz
2021 年 6 月 1 日
編集済み: Adam Danz
2021 年 6 月 2 日
Existing code
% earth ref spheroid
wgs84 = wgs84Ellipsoid;
% Aircraft location
lat_aircraft = 45; %deg
lon_aircraft = 8; %deg
alt_aircraft = 5000; %m
%% Receiver extent
lon_extent = 0.5;
lat_extent = 1;
%% Find boundry points of rectangle, and add center of the location
lat_range = [lat_aircraft - (lat_extent/2), lat_aircraft, lat_aircraft + (lat_extent/2)];
lon_range = [lon_aircraft - (lon_extent/2), lon_aircraft, lon_aircraft + (lon_extent/2)];
latlonPts = [combvec(lat_range, lon_range)]';
geoplot(latlonPts(:,1), latlonPts(:,2),'*')
Create ellipse within bounding box
%% Create elliptical traj at constant altitude
theta = linspace(0,2*pi) ;
x = lon_extent/2 * cos(theta) + lon_aircraft;
y = lat_extent/2 * sin(theta) + lat_aircraft;
hold on
geoplot(y,x,'r-')
1 件のコメント
Adam Danz
2021 年 6 月 3 日
Note, the simple solution above works when the rectangle is parallel with the axes but does not work with rotated rectangles.
参考
カテゴリ
Help Center および File Exchange で Coordinate Systems についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!