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);
Best Answer