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

📄 normalizeshape.m

📁 asm工具箱
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%
%(c) Ghassan Hamarneh 1999
%%%%%%%%%%%%%%%%%%%%%%%%%%
function [xNew,yNew]=NormalizeShape(xOld,yOld);
%function [xNew,yNew]=NormailzeShape(xOld,yOld);

%the distance between point 1 and 2 scale it to unity (s=1/d)
dx=xOld(2)-xOld(1);
dy=yOld(2)-yOld(1);
s=1/sqrt(dx^2+dy^2);

%make the line pt1-pt2  horizpntal by rotating it negative its angle (Theta= - angle of slope)
Theta=-atan(dy/dx);
if (dx<0) Theta=Theta+pi; end
   
%scale and rotate but NO translation
NewX=ScaleRotateTranslate([xOld;yOld],s,Theta,0,0);

% now translate to make the mean of x and y at origin (center of mass on origin)
tx=-mean(NewX(1:end/2));
ty=-mean(NewX(end/2+1:end));
NewX=NewX+[tx*ones(length(NewX)/2,1);ty*ones(length(NewX)/2,1)];

xNew=NewX(1      :end/2);
yNew=NewX(end/2+1:end);

⌨️ 快捷键说明

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