Патчи в Matlab склеиваются из отдельных треугольников. Их края обычно не видны, но когда я экспортирую рисунок в формат векторной графики, они хорошо видны (показана не вся картинка, а только увеличенная часть)
Код для создания этого MWE:
xx = [0:1:100, 100:-1:0];
yy = [zeros(1,101), ones(1,101)];
p1 = patch(xx,yy,'b');
print('testPatch','-dpdf','-painters')
Альтернативная функция fill
ведет себя так же. Есть ли способ избежать этой ошибки или в этом случае мне придется жить с растровыми изображениями?
РЕДАКТИРОВАТЬ: Один из способов обхода — заштриховать область, а не заполнять ее. Это, очевидно, не всегда возможно, но в моем случае это сработало хорошо, и я мог придерживаться векторной графики. Соответствующее представление FEX: http://www.mathworks.com/matlabcentral/fileexchange/30733-hatchfill
export_fig
от Matlab FEX. Он отлично справляется с экспортом данных, намного лучше, чем сам Maltab. попробуй. - person Ander Biguri   schedule 23.04.2015export_fig test.pdf -painters
выдает тот же фрагментарный вывод. У меня была своя доля горя с векторным выводом Matlab, и я отказался от попыток убедить Matlab создавать красивые фигуры. Вместо этого я сохраняю в формате eps, а затем редактирую его в Illustrator или Inkscape, чтобы исправить шрифты, ширину линий и т. д. - person Martin J.H.   schedule 23.04.2015GraphicsSmoothing
иRenderer
, установив для них значения'off'
и'painters'
соответственно. - person chepyle   schedule 30.11.2015