matlab里如何输入圆周,如何在MATLAB中打印小圆圈?

问题我正在尝试将小圆(直径= 0.02厘米等)实心圆圈打印成精确尺寸的pdf.我可以打印直径为2厘米,1厘米,0.5厘米的精确圆圈,但是当我试图低于~0.04厘米时,打印的图形不包括所有圆圈.让我告诉你我对一些样本图片的意思.请注意,所有圆圈都以它们的直径长度分隔,以获得它们的良好堆叠.第一幅图显示了相同代码的输出,其中d = 1,第二幅是d = 0.5,最后一幅是d = 0.02.

XckL9.jpg

P3WcB.jpg

IG9Ef.jpg

前两张图片是正确的.在最后一张图片中,您可以看到大多数圆圈未打印.圆圈尺寸正确,但只有少数印刷.它必须看起来像前两张图片,但只有较小的圆圈.

最低工作示例代码:

cm2pts=72/2.54; %cm to inch and inch to points = cm to points

ax.Units='points'; fig.Units='points';

height=cm2pts*220; % 'page' dimensions

width=cm2pts*150;

ax.XLim=([0 width]); ax.XLim=([0 height]);

diameter=0.02*cm2pts;

distance=diameter;

...

here is a loop that creates a x,y position vector for all dots

...

plot(ax,x,y, ... 'MarkerFaceColor','black','MarkerEdgeColor','none', ...

'Marker','o','LineStyle','none','MarkerSize',diameter);

set(ax,'xtick',[],'ytick',[]);

ax.Units='normalized'; ax.Position=[0 0 1 1]; ax.Units='points';

fig.PaperUnits='points';

fig.PaperPositionMode = 'manual';

fig.PaperPosition=[0 0 width height];

fig.PaperSize = [PaperPosition(3) PaperPosition(4)];

print(fig,'-painters','output.pdf','-dpdf')

笔记

– 我尝试缩放所有内容(以5倍大小打印,以便圆圈更大),认为我会在打印时缩小(降至20%),但仍然失败,可能是它与圆形与绘图尺寸的比例.

– 我手检查x,y位置,它们是正确的.

– 我尝试将标记更改为’.’但是’.’即使你将MarkerSize作为eps,也不能小于~2.5毫米.

– 我试过矩形,但它无法进行矢量化(通过代码),因此它很慢并导致太多的ram和文件大小.

– 我尝试将图形位置设置为实际尺寸,输出没有变化.

– 输出文件尺寸在所有情况下都是正确的.

– 我试过分散,但我根本无法从散射中得到我想要的真实尺寸.它表示S(标记区域)是分散文档中的点^ 2但是我无法获得任何大小,例如,d 1cm带有散射圆.

-Behaviour在Matlab Online上是一样的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值