2017-05-31 1 views
1

Je voudrais dessiner beaucoup de rectangles dans Matlab. Je sais que je peux utiliser la commande "rectangle" pour dessiner n'importe quelle forme de rectangle que je veux. Cependant, quand il y a deux rectangles avec intersection, il alambics contient des rectangles' lignes dans la zone de chevauchement enter image description hereDessiner des rectangles transparents sans zone d'intersection dans Matlab

Est-il possible de tirer sans ces lignes dans la zone d'intersection comme le graphique ci-dessous? Merci!

enter image description here

+1

Je recommande d'utiliser ['PolygonClip'] (https://www.mathworks.com/matlabcentral/fileexchange/8818-polygon-clipper) pour effectuer cette opération. – Suever

+0

Une solution hacky pourrait être de trouver des intersections et dessiner un rectangle bordé de blanc couvrant cette partie intérieure, puis dessiner des points noirs sur les intersections. –

+0

Si vous pouvez trouver tous les coins et les points d'intersection, et d'éliminer les coins qui apparaissent à l'intérieur d'un autre rectangle, vous pouvez alors utiliser ceci: https://stackoverflow.com/a/38679053/4183191 –

Répondre

1

Comme je suppose que vous voulez dire les transparents, cette solution serait souhaitée:

%set the coordinates of your t-shaped polygon considering order of plotting points: 
x=[0 2 2 6 6 2 2 0 0]; 
y=[0 0 1 1 3 3 4 4 0]; 
plot(x,y) % to plot polygon 


Ce serait la sortie:

T-shape polygon