⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findtri.m

📁 细胞生长结构可视化工具箱-MATLAB Toolbox1999.zip
💻 M
字号:
function triangle = findtri(pt,wvis,C)
%
% 	triangle = findtri(pt,w,C)
%
%	Find triangle enclosing pt
%	v1,v2,v3 = nodes forming the triangle
%	pt = point of interest
%	w = matrix of node locations
%	C = matrix of links
%

NoTries = 3;

multitry = 0;

triangle = [];
dis=[];

large = 9999999999999;

% Compute distances to nodes from pt
dis=zeros(size(wvis,1),1);
for i=1:size(wvis,1)
	dis(i) = norm(pt-wvis(i,:));
end

if multitry == 1
	% examine nodes int turn starting with closest
	tries = 0;
else
	tries = size(dis,1)-NoTries;	% only try two triangles. Need 2 since closest node is sometimes in adjacent traingle
end
while isempty(triangle)&(tries<size(dis,1))
	[minval,s] = min(dis);

	for k=1:size(C,1)-1	% -1 since we must find 2 links to form a triangle!
		if (C(k,s)==1)	% found a link
			for l = k+1:size(C,1)	% look for third node frominf triangle
				if (C(k,l)==1 & C(s,l)==1) % have found third node
					if intriang(pt,wvis(s,:),wvis(k,:),wvis(l,:))
						triangle = [s,k,l];
						%disp('Found triangle');
						break;
					end
				end
			end
			if ~isempty(triangle)
				break;
			end	
		end
	end
	tries = tries+1;	% increment no of nodes triedd counter
	dis(s) = large;	% exclude current winner from next iteration
end
	
if isempty(triangle)
%	disp('Did not find a triangle!');
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -