【发布时间】:2014-06-20 19:55:28
【问题描述】:
我正在使用 Matlab 进行一些粒子动力学模拟,并将每个粒子定义为一个圆形标记。基本上,每次我更新我的情节时,我都会根据情节比例调整这些标记的大小;我的所有这些的绘图代码可以在下面找到:
%%Initial Plot at time t = 0 Along with Scaling in the Y-Direction
figure;
h=scatter(Pos(1,:),Pos(2,:),6,jet(length(Pos(1,:))),'filled','MarkerEdgeColor','k','linewidth',1);
hold on
axis ([0 dp 0 dp]*L*Scale)
currentunits = get(gca,'Units');
set(gca, 'Units', 'Points');
axpos = get(gca,'Position');
set(gca, 'Units', currentunits);
markerWidth = dp/diff(ylim)*axpos(4); % Calculate Marker width in points
set(h, 'SizeData', markerWidth^2)
这是我遇到的奇怪问题。当我运行我的模拟时,我发现粒子没有按照他们应该的方式排列,根据很多关于这方面的文献。基本上,我最终会在 x 方向上的粒子之间出现间隙(y 方向很好)。
最初,我认为我的排斥力有问题,但我回去重新排列粒子,使它们可以接触(作为初始测试),我注意到 - 尽管参数是正确的 - 绘制的标记没有接触在 x 方向(同样,y 方向很好)。
好像 Matlab 标记不是完美的圆?
是否有人对此有任何其他信息或想法如何解决标记以这种方式表现的事实?
【问题讨论】:
标签: matlab aspect-ratio