How to draw 2d compass in 3d UIAxes
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Is it possible to use the compass() function to draw a compass rose in a UIAxes object? I don't care about the function depicted by the compass, I just want the circles and degree text for other purposes. Here is my code:
function draw_compass(em)
th = linspace(0,.001,1000);
r = linspace(5000,384400,1000);
[u,v] = pol2cart(th,r);
pax = compass(em.UIAxes,u,v);
for i = 1:1000 % hide the arrows
pax(i).LineStyle = 'none';
end
end
If I run draw_compass() as a standalone function, it works just fine.
When I try to display this in my UIAxes, I get a "bowtie" effect from the hidden arrows, but no range circles or compass angle text. What gives?
I also tried polarplot(), but it doesn't like my Cartesian coordinate system. Also tried a flattened ellipse, but the range circles are uneven, and I would still have to add text for the angles.
If none of this works, I will have to hand-jam all the circles and radial lines and text the hard way.
0 Commenti
Risposta accettata
Kevin Holly
il 7 Apr 2023
Modificato: Kevin Holly
il 7 Apr 2023
It is possible to place the compass rose in a 3D uiaxes. Did you want to plot something in addition to this? If so, you may have difficulties if you try plotting a 3D scatter on top with scatter3.
ax = uiaxes;
th = linspace(0,.001,1000);
r = linspace(5000,384400,1000);
[u,v] = pol2cart(th,r);
compass(ax,u,v)
for ii = 1:length(ax.Children)
delete(ax.Children(1))
end
view(3)
8 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Polar Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!