如何在matlab中绘制具有特定半径和角度的重复直线?

时间:2014-10-11 15:15:37

标签: image matlab plot

假设我想绘制如下图像:

将像素值细化为0表示黑色,白色表示1。 这些线以特定的半径和角度绘制

现在我创建一个80 x 160矩阵 texturematrix = 0(80,160);

然后我想根据线条条件将特定元素更改为1 但是我如何有效地将它们重复地与彼此分开? 非常感谢大家!

1 个答案:

答案 0 :(得分:0)

这可能不是您想要的,但生成这样的图像可以通过绘制一组线来完成,如下所示:

% grid sizes
m = 6;
n = 5;

% line length and angle
len = 1;
theta = .1*pi;

[a,b] = meshgrid(1:m,1:n);
x = reshape([a(:),a(:)+len*cos(theta),nan(numel(a),1)]',[],1);
y = reshape([b(:),b(:)+len*sin(theta),nan(numel(b),1)]',[],1);

h = figure();
plot(x,y,'k', 'LineWidth', 2);

但这与纹理矩阵无关。因此,我们构建了一个所需大小的矩阵:

set(gca, 'position',[0 0 1 1], 'units','normalized', 'YTick',[], 'XTick',[]);

frame = frame2im(getframe(h),[0 0 1 1]);
im = imresize(frame,[80 160]);
M = ~(im(2:end,2:end,1)==255);