Translate rotate and scale STL surfaces
조회 수: 94 (최근 30일)
이전 댓글 표시
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?
댓글 수: 1
Brice Kabore
2020년 5월 11일
편집: Brice Kabore
2020년 5월 11일
For translation
[V, F]=stlread("isopoison.stl"); %although the new stlread version gives a different structure
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)
% [V, F]=stlread("isopoison.stl");
% 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
답변 (1개)
KSSV
2019년 1월 30일
You need to know about geometric transformations...read here https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/geometry/geo-tran.html
댓글 수: 2
참고 항목
카테고리
Help Center 및 File Exchange에서 Point Cloud Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!