Remove everything outside a defined area

조회 수: 5 (최근 30일)
Edmondo D'Ercole
Edmondo D'Ercole 2021년 2월 16일
댓글: Edmondo D'Ercole 2021년 2월 25일
Hi,
I have to study the response of a cellular graded material with Abaqus, and to recreate the geometry, I'm using the Voronoi function of Matlab.
I need to cut out everything outside the area that's being defined with the letter "s", but I don't know how.
The code to recreate the area and the voronoi structure is this:
clear all; close all; clc
%Defining the area "s" I want to use to cut the portion I need
s = table([0; 0; 30; 30],[0; 10; 10; 0], ones(4,1),...
'VariableNames',{'X','Y','Z'},'RowNames',{'A','B','C','D'});
patch(s.X,s.Y,s.Z);
axis equal;
hold on
%Defining a minimum distance that the nodes have to maintain
minAllowableDistance = 0.5;
%Defining the number of nodes/points I want to generate
numberOfPoints = 2000;
%Generating the x and y coordinates randomly
x = 30*rand(1,numberOfPoints);
y = 10*rand(1,numberOfPoints);
%Here there is the cicle needed to place the points at a given distance
%from each other
keeperX = x(1);
keeperY = y(1);
counter=1;
for k = 1 : numberOfPoints
thisX = x(k);
thisY = y(k);
distances = sqrt((thisX-keeperX).^2 + (thisY - keeperY).^2);
minDistance = min(distances);
if minDistance >= minAllowableDistance
keeperX(counter) = thisX;
keeperY(counter) = thisY;
counter = counter + 1;
end
end
%Creating the voronoi structure.
voronoi(keeperX,keeperY);

채택된 답변

darova
darova 2021년 2월 17일
Try initmesh to triangulate
  댓글 수: 3
darova
darova 2021년 2월 18일
YOu can do something like
ind = 0<y && y<10; % find indices outside rectangle
x(ind) = []; % remove data
y(ind) = [];
Edmondo D'Ercole
Edmondo D'Ercole 2021년 2월 25일
Actually this is how you solve my question. THANK YOU! The problem was with how I used the Voronoi function. I solved it this way:
[vx,vy]=voronoi(keeperX,keeperY);
ind = vx<0 | vx>30;
vx(ind) = [];
vy(ind) = [];
ind = vy<0 | vy>10;
vx(ind)=[];
vy(ind)=[];
With this, I generate the vertices of the Voronoi structure, and then cut off the vertices outside my area of interest.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Voronoi Diagram에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by