Как построить треугольники на сетке 6х6 в MATLAB? - PullRequest
0 голосов
/ 02 октября 2009

У меня есть файл 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

Это вершины треугольников [x1 y1 x2 y2 x3 y3], которые мне нужно построить на сетке 6x6. Мне нужно увидеть эти треугольники на одном графике.

Как это можно сделать в 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 ]

6 голосов
/ 02 октября 2009
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 со значениями по умолчанию.

2 голосов
/ 02 октября 2009

Для этого можно использовать функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...