How I can rotate cube the way that front plane will be come the top plane?

5 次查看(过去 30 天)
Hi! Could you please give me an advice about 3d rotation. How I can rotate plane of 3d cube. If plane is front or side and I need then rotate my cube in way like that side plane or front plane become the top. I have coordinates of plane and need to rotate by 90 degrees.
I have this planes
planes(:,:,1) = [0 3 3; 0 0 3; 0 3 0; 0 0 0; 0 0 0];
planes(:,:,2) = [0 0 3; 3 0 3; 0 0 0; 3 0 0; 0 0 0];
planes(:,:,3) = [3 0 3; 3 3 3; 3 0 0; 3 3 0; 3 0 0];
planes(:,:,4) = [3 3 3; 0 3 3; 3 3 0; 0 3 0; 0 3 3];
planes(:,:,5) = [0 3 0; 3 3 0; 0 0 0; 3 0 0; 0 0 0];
planes(:,:,6) = [0 3 3; 3 3 3; 0 0 3; 3 0 3; 0 0 3];
location_plane = 6;
Thank you in advance for your time and help

采纳的回答

Jan
Jan 2023-2-8
编辑:Jan 2023-2-8
  • Use permute(planes, [2,1,3]) to move the 3D coordinates to the first dimension.
  • Move the center of the body to the origin (or to a point of the line to rotate around:
Shift = [-1.5, -1.5, -1.5];
P = planes + Shift;
  • Apply a rotation matrix around the axis to rotate around (see e.g. FEX: RotMatrix)
R = [1, 0, 0; 0, 1, 0; 0, 0, -1] % Adjust to the plane you want
P = R * P;
  • Shift pack and change the dimensions on demand:
Result = permute(P - Shift, [2, 1, 3])

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactions, Camera Views, and Lighting 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by