Applying 3d transformation to cuboid

2 次查看(过去 30 天)
2one
2one 2017-7-14

I have the 8 vertices of a cuboid (XYZvox) with known distance in millimetres (vox to mm) between each vertex which I transform in 3d space using the following 4d transformation matrix (M). I am really struggling to work out the new voxel to millimetre conversion for the transformed vertices. How can I work this out?

XYZvox =[ 1     1     1     1   409   409   409   409
     1     1   389   389     1     1   389   389
     1   162     1   162     1   162     1   162]
M =[0.0337    0.0958   -0.9616   -2.5360
    0.3706    0.0107    0.1012 -150.2009
    0.0201   -0.3571   -0.2550 -231.0513
         0         0         0    1.0000]
for i=1:8
poi1=XYZvox(:,i);
poi2=[XYZvox(:,i)];
poi2(4,1)=1;
poi_trans=M*poi2;
poi_trans=poi_trans(1:3);
scatter3(poi1(1),poi1(2),poi1(3),'red','filled'); xlabel('x'); hold all;
scatter3(poi_trans(1),poi_trans(2),poi_trans(3),'green','filled'); xlabel('x'); ylabel('y'); zlabel('z'); 
end

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by