You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
46 lines
1.3 KiB
%--------------------------
|
|
% @Author: Jingqiao Hu
|
|
% @Date: 2021-12-08 20:00:42
|
|
% @LastEditTime: 2021-12-11 20:22:12
|
|
|
|
% [t1,t2,t3, x, y, len, sin(theta)]
|
|
%--------------------------
|
|
function [MMCs, nc_local] = MMC_init_cvt(t, vnodes_cell, vedges_cell)
|
|
|
|
ncvt = size(vnodes_cell, 1);
|
|
nc_local = zeros(ncvt, 1);
|
|
|
|
MMCs = cell(ncvt, 1); % saves all properties, [t1,t2,t3,x, y, len, sin(theta)]
|
|
|
|
for ele = 1 : ncvt
|
|
nodes = vnodes_cell{ele};
|
|
edges = vedges_cell{ele};
|
|
|
|
nedges = size(edges, 1);
|
|
nc_local(ele) = nedges;
|
|
|
|
% the other props
|
|
nodes1 = nodes(edges(:, 1), :);
|
|
nodes2 = nodes(edges(:, 2), :);
|
|
|
|
nodes3 = (nodes1 + nodes2) / 2;
|
|
x = nodes3(:,1);
|
|
y = nodes3(:,2);
|
|
|
|
len = vecnorm(nodes2 - nodes1, 2, 2);
|
|
|
|
sina = abs(nodes2(:,2) - nodes1(:,2)) ./ len;
|
|
dir = (nodes2(:,2) < nodes1(:,2)) .* (nodes2(:,1) < nodes1(:,1)) + ...
|
|
(nodes2(:,2) > nodes1(:,2)) .* (nodes2(:,1) > nodes1(:,1));
|
|
sina(dir < 1) = -sina(dir < 1);
|
|
|
|
mmc_prop = zeros(nedges, 7);
|
|
mmc_prop(:, 1:3) = t;
|
|
mmc_prop(:, 4) = x;
|
|
mmc_prop(:, 5) = y;
|
|
mmc_prop(:, 6) = len/2;
|
|
mmc_prop(:, 7) = sina;
|
|
|
|
MMCs{ele} = mmc_prop;
|
|
end
|
|
end
|