# Translate rotate and scale STL surfaces

101 views (last 30 days)
Nataliya Perevoshchikova on 30 Jan 2019
Edited: Brice Kabore on 11 May 2020
I imported three STL files (3d) as patch data. I merged nodes. These objects can be plotted with faces and vertices. My next step is to rotate, translate and scale one surface to two surfaces based on vertices. Vizually, I know where should be insertion points of fitted surface to two surfaces.
What would be steps to perform these operations?
Brice Kabore on 11 May 2020
For translation
P=(8,0,0)% translate in x by 8
V = V+ P
For scaling
scale=2.0
V=V*scale% or V(:,1)=V(:,1)*scale
For rotatation you can use this function basically creating a rotation matrix that will be multiplied by V which contain your vertices indice is the axis, 1 for x axis 2 for y ...
function vertex = rotation(V, indice, angle)
% angle=-pi/2;
Rz = [ cos(angle), -sin(angle), 0 ;
sin(angle), cos(angle), 0 ;
0, 0, 1 ];
Ry = [ cos(angle), 0, sin(angle) ;
0, 1, 0 ;
-sin(angle), 0, cos(angle) ];
Rx = [ 1, 0, 0 ;
0, cos(angle), -sin(angle);
0, sin(angle), cos(angle) ];
if(indice==1)
vertex = V*Rx;
end
if(indice==2)
vertex = V*Ry;
end
if(indice==3)
vertex = V*Rz;
end
end

KSSV on 30 Jan 2019
##### 2 CommentsShowHide 1 older comment
KSSV on 30 Jan 2019
It should be possible...