I am trying to plot an ellipse using a polarplot function.
21 次查看(过去 30 天)
显示 更早的评论
I calculated the radii for every 1 degree increase in the angle from the major axis, and the calculation is right. But when I try to plot the points using a polar plot, I am getting a shaded region. I don't understand why that is happening and how to fix it. Your help is appreciated.
The following is my code:
%initialization
radius = zeros(1,361);
ta = linspace(0,360,361);
h_a = 450; %apogee height from Mars in km
e = 0.001; %eccentricity of ellipse
for i = 1:1:361 %true anamaly of the satellite as measure from the major axis of the ellipse poinint the perigee.
radius(i) = (h_a * (1 - e)) / (1 + (e .* cosd(ta(i))));
end
%plot
polarplot(ta, radius)
The following is the plot I got:
0 个评论
采纳的回答
Star Strider
2021-9-18
The polarplot function requires the angular measure to be in radians.
Change that in the polarplot call and it works. (The elliptical nature can be made more apparent by temporarily increasing ‘e’ to be certain it is working as expected.)
%initialization
radius = zeros(1,361);
ta = linspace(0,360,361);
h_a = 450; %apogee height from Mars in km
e = 0.001; %eccentricity of ellipse
% e = 0.5;
for i = 1:numel(ta) %true anamaly of the satellite as measure from the major axis of the ellipse poinint the perigee.
radius(i) = (h_a * (1 - e)) / (1 + (e .* cosd(ta(i))));
end
%plot
polarplot(deg2rad(ta), radius)
.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polar Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!