如何在MATLAB中在6x6网格上绘制三角形?

时间:2009-10-01 20:22:35

标签: matlab graph geometry

我有一个 a.txt 文件,如:

0 0 0 3 4 3
0 0 3 0 3 4
0 1 0 4 4 4
0 1 3 1 3 5
0 2 0 5 4 5
0 3 0 0 4 0

这些是我需要在6x6网格上绘制的三角形[x1 y1 x2 y2 x3 y3]的顶点。 我需要在一张图上看到这些三角形。

如何在MATLAB中完成?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 非常感谢大家!

最终有效:

a = dlmread('a.txt');

clf
xlim([0 6])
ylim([0 6])
for i = 1:size(a,1)

   line(a(i,[1:2:5,1]), a(i,[2:2:6,2]), 'color',rand(1,3))
   pause;

end
grid on;

2 个答案:

答案 0 :(得分:6)

a = dlmread('a.txt')
clf

for i = 1:size(a,1)
    line(a(i,[1:2:5,1]), a(i,[2:2:6,2]), 'color',rand(1,3))
end

请注意,我正在重复顶点以完成三角形,并且每次循环时我都使用随机颜色。

因为格式很简单,所以我可以使用DLMREAD和默认值。

答案 1 :(得分:2)

您可以使用PATCH功能来完成此操作,尽管您指定的许多三角形都是相互叠加的:

a = [0 0 0 3 4 3; ...  % A variable "a" containing the data from the file
     0 0 3 0 3 4; ...
     0 1 0 4 4 4; ...
     0 1 3 1 3 5; ...
     0 2 0 5 4 5; ...
     0 3 0 0 4 0];
x = a(:,[1 3 5])';  % Get the x coordinates, one set per column
y = a(:,[2 4 6])';  % Get the y coordinates, one set per column
patch(x,y,'r');     % Use patch to plot one triangle per column, colored red