Строка разреза 3d-поверхности в Matlab [дубликат]

XML_HTMLSax довольно стабилен - даже если он больше не поддерживается. Другой вариант может заключаться в том, чтобы передать вам HTML через Html Tidy , а затем проанализировать его стандартными инструментами XML.

2
задан Brandon Dube 8 December 2015 в 05:24
поделиться

2 ответа

После некоторого копания в документе я нашел лучшее решение.

Порядок отсечения указан на уровне axes.

Полный MWE, чтобы контуры всегда были поверх поверхности ниже:

fig = figure;
ax = get(gca);
ax.SortMethod = 'childorder'; % this is the important line
surf(x,y,z);
[c,h] = contour3(x,y,z,'LevelList',[0 : 0.1 : 1],'Color','k');
clabel(c,h,[0 : 0.1 : 1]);
3
ответ дан Brandon Dube 31 August 2018 в 13:19
поделиться

Вы можете попробовать работать с свойствами патчей contour: увеличить linewidth края патча: значение по умолчанию равно 0.5: a linewidth из 1 или 1.5 должно быть достаточно.

Точно так же вы можете установить свойства лавелей, сгенерированных clabel: вы можете установить font size и font weight, чтобы сделать их более видимыми. Также вы можете установить количество добавляемых меток, указав свойство labelspacing.

Интересным вариантом может быть также установка вручную меток вручную: это можно сделать, указав свойство manaul в clabel.

Ниже вы найдете пример, основанный на поверхности peaks:

[x,y,z]=peaks
surf(x,y,z);
shading interp
hold on
[c,h] = contour3(x,y,z,[-10:1:10]);
set(h(:),'linewidth',1,'edgecolor','k')
clabel(c,h,[-10:1:10],'fontsize',9,'fontweight','bold','rotation',0,'labelspacing',99);
% clabel(c,h,'manual','fontsize',9,'fontweight','bold','rotation',0);

Надеюсь, что это поможет.

1
ответ дан il_raffa 31 August 2018 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: