Нарисуйте многоугольник с отверстием внутри - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно нарисовать прямоугольник с прямоугольным отверстием внутри. Я нашел этот кусок кода, но мне не удалось понять, как я могу изменить его в соответствии с моим требованием.

 figure()
 p  = [0 0; 0 1; 1 1; 1 0]; %ccw
 pp = [0 0; 1 0; 1 1; 0 1]; %cw
 ph = p + [1.2 0];
 # add hole
 ph(end+1,:) = nan;
 ph = [ph; (pp-[0.5 0.5])*0.5+[1.7 0.5]];
 po = polygon2patch (ph);
 patch (po(:,1), po(:,2), 'b', 'facecolor', 'c');
 axis image

1 Ответ

1 голос
/ 18 октября 2019

Функция polygon2patch, безусловно, кажется полезной, но, возможно, для рисования только двух прямоугольников, вы также можете использовать только две команды patch и просто установить внутренний прямоугольник,то есть отверстие, к белому цвету переднего плана, вот так:

outer = [0 0; 2 0; 2 1; 0 1];
inner = [0.4 0.2; 1.6 0.2; 1.6 0.8; 0.4 0.8];
patch(outer(:, 1), outer(:, 2), 'c');
patch(inner(:, 1), inner(:, 2), 'w');
axis equal;

Это даст такой вывод:

Output

Надеждаэто помогает!

...