53 lines
2.3 KiB
Matlab
53 lines
2.3 KiB
Matlab
function fig_geo_q1_meetup()
|
|
%FIG_GEO_Q1_MEETUP 问题一:角域交会总览与定位区域放大(直径圆、最小包围圆)。
|
|
|
|
S = fig_style();
|
|
D = load_data(S, 'geo_q1_meetup');
|
|
H = geom_helpers();
|
|
fig = figure('Color', 'w', 'Visible', 'off');
|
|
t = tiledlayout(fig, 1, 2, 'TileSpacing', 'compact', 'Padding', 'compact');
|
|
|
|
% 左:角域交会总览(交会区域在总览里只是一个点,放大后见右图)
|
|
ax1 = nexttile(t);
|
|
hold(ax1, 'on');
|
|
hw = gobjects(0);
|
|
for i = 1:size(D.wedges, 1)
|
|
hw = H.wedge(ax1, squeeze(D.wedges(i, :, :)), pick_color(S, 'primary'), 0.25);
|
|
end
|
|
hr = plot(ax1, D.zoom_center(1), D.zoom_center(2), 's', 'MarkerSize', 6, ...
|
|
'MarkerFaceColor', pick_color(S, 'accent'), 'MarkerEdgeColor', 'none');
|
|
plot(ax1, D.stations(:, 1), D.stations(:, 2), 'o', 'MarkerSize', 6, ...
|
|
'MarkerFaceColor', pick_color(S, 'accent'), 'MarkerEdgeColor', 'none');
|
|
H.label_points(ax1, D.stations, D.station_labels, pick_color(S, 'accent'));
|
|
hold(ax1, 'off');
|
|
axis(ax1, 'equal');
|
|
xlim(ax1, D.view_center(1) + [-D.half_overview, D.half_overview]);
|
|
ylim(ax1, D.view_center(2) + [-D.half_overview, D.half_overview]);
|
|
xlabel(ax1, 'x / m');
|
|
ylabel(ax1, 'y / m');
|
|
legend(ax1, [hw(1), hr], D.legend1, 'Location', 'southoutside', ...
|
|
'Orientation', 'horizontal');
|
|
|
|
% 右:定位区域放大
|
|
ax2 = nexttile(t);
|
|
hold(ax2, 'on');
|
|
for i = 1:size(D.zoom_wedges, 1)
|
|
H.wedge(ax2, squeeze(D.zoom_wedges(i, :, :)), pick_color(S, 'primary'), 0.25);
|
|
end
|
|
H.poly(ax2, D.zoom_region, pick_color(S, 'accent'), 1, 'none', 0.5);
|
|
hd = H.circle(ax2, D.dc_center, D.dc_radius, pick_color(S, 'violet'), 1.2, '--');
|
|
hm = H.circle(ax2, D.mec_center, D.mec_radius, pick_color(S, 'success'), 1.4, '-');
|
|
H.marker(ax2, D.dc_center, pick_color(S, 'violet'), 5, true);
|
|
H.marker(ax2, D.mec_center, pick_color(S, 'success'), 5, true);
|
|
hold(ax2, 'off');
|
|
axis(ax2, 'equal');
|
|
xlim(ax2, D.zoom_center(1) + [-D.zoom_half, D.zoom_half]);
|
|
ylim(ax2, D.zoom_center(2) + [-D.zoom_half, D.zoom_half]);
|
|
xlabel(ax2, 'x / m');
|
|
ylabel(ax2, 'y / m');
|
|
legend(ax2, [hd, hm], D.legend2, 'Location', 'southoutside', ...
|
|
'Orientation', 'horizontal');
|
|
|
|
fig_save(fig, S, 'geo-q1-convex-intersection-zoom.png');
|
|
end
|