# How to map subdivisions in a squared geometry

조회 수: 2 (최근 30일)
Lama Hamadeh 2021년 7월 19일
답변: Matt J 2021년 7월 19일
I have a geometry of a square with 4 edges. Each edge has 5 points and 4 cells (subdivisons). The image bellow illustrates it.
If I have a line going from, say cell(1), Ind(1), Edge(1), I want to define all its possible intersections with the rest of the cells in the remaining 3 edges. So, for example, a line going from cell(1), Ind(1), Edge(1), can intersect with cells of indices 5, 6, 7 ,...., 16. And then, do the same for the next cell. And so on so forth. Each cell has three possible edges to intersect with one of their cells.
This is my attempt of the code.
%set up the vertices' coordinates of the polygon (square in our case)
sx = [0 1 1 0];
sy = [0 0 1 1];
%Define the number of vertices
NVert = length(sx);
%go through the sides and compute their lengths
for j = 1:NVert %side
jp = j+1; %next side
if (jp > NVert)
jp = jp - NVert;
end
%compute the edge lengths (unit length)
SL(j) = sqrt((sx(j)-sx(jp))^2+(sy(j)-sy(jp))^2);
%number of points on each side/edge
nPoint(j) = round(SL(j)/ds);
%cumalative number of points
cPoint(j) = sum(nPoint(1:j));
%number of subdivisions/pixels/blocks/cells
nSubDiv(j) = nPoint(j) - 1;
%cumalative number of subdivisions/pixels/blocks/cells
cSubDiv(j) = sum(nSubDiv(1:j));
end
for j = 1:NVert %a loop over all the edges/vertices
for i = 1:nPoint(j) %a loop over the number of points each edge
%points index
pInd(i,j) = nPoint(1)*(j-1)+i;
end
for k = 1:nSubDiv(j)
%subdivisions index
sInd(k,j) = nSubDiv(1)*(j-1)+k;
end
end
%reshape the point index matrix into a vector
pInd = reshape(pInd(:,:),ns,1);
%reshape the cell index matrix into a vector
sInd = reshape(sInd(:,:),nSubDiv(1)*nSubDiv(1),1);
%edges mappings (here where I need help.)
for j = 1:NVert %a loop over all the edges/vertices
for i = 1:nSubDiv(j) %a loop over the number of subdivisions each edge
%Each cell has three possible edges to intersect with one of their cells.
end
end
Any help would be appreicted.
Thanks.

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

### 답변 (2개)

KSSV 2021년 7월 19일
x = 1:5 ;
y = 1:5 ;
[X,Y] = meshgrid(x,y) ;
X(3,3) = NaN ; Y(3,3) = NaN ;
plot(X,Y,'r',X',Y','r')
##### 댓글 수: 2없음 표시없음 숨기기
Lama Hamadeh 2021년 7월 19일
Thanks for the effort. However, my problem is not with how to plot the geometry. It is basically how to determine the main possibilites each block (or cell) has when mapping to other edges/cells.
Lama Hamadeh 2021년 7월 19일
In other words, how can say "for any given cell on a given edge, here are the follwoing of possibilites of cells to look at (or map with)"? Bearing in mind that each cell is allowed to be mapped to cells on edges different of its edge., hence, each cell has three different edges (with their cells) as possible options.

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

Matt J 2021년 7월 19일
I can't tell from your code what the rules are that determine which cells are connected to or interact with other cells. However, you probably want to express the relation ship through a graph object:

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

### 카테고리

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

### Community Treasure Hunt

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

Start Hunting!

Translated by