import open3d as o3d
import numpy as np
import copy
np.set_printoptions(precision=3, suppress=True) # 소수점 출력 자리수 3자리
mesh_cylinder= o3d.geometry.TriangleMesh.create_cylinder(radius=0.2,height=2.0)
mesh_cylinder.translate([0,0,0])
mesh_cylinder.compute_vertex_normals()
mesh_cylinder.paint_uniform_color([0.1, 0.1, 0.9])
# 2번
mesh_cylinder_y = copy.deepcopy(mesh_cylinder)
R = mesh_cylinder.get_rotation_matrix_from_xyz((0, np.pi / 2, 0))
mesh_cylinder_y.rotate(R, mesh_cylinder_y.get_center())
mesh_cylinder_y.paint_uniform_color([0.9, 0.1, 0.1])
mesh_cylinder_x = copy.deepcopy(mesh_cylinder)
R = mesh_cylinder.get_rotation_matrix_from_xyz((np.pi / 2, 0, 0))
mesh_cylinder_x.rotate(R, mesh_cylinder_x.get_center())
mesh_cylinder_x.paint_uniform_color([0.1, 0.9, 0.1])
axis_frame= o3d.geometry.TriangleMesh.create_coordinate_frame(size=3,
origin=[0, 0, 0])
o3d.visualization.draw_geometries([axis_frame, mesh_cylinder,
mesh_cylinder_y, mesh_cylinder_x],width=500,height=500)
# 4번 - 2
mesh_cylinder_y = copy.deepcopy(mesh_cylinder)
Ty = np.eye(4)
Ty[:3, :3] = o3d.geometry.get_rotation_matrix_from_xyz((0, np.pi / 2,0))
print("과제 2 y축 회전 동차변환 행렬\n", Ty)
mesh_cylinder_y.transform(Ty)
mesh_cylinder_y.paint_uniform_color([0.9, 0.1, 0.1])
mesh_cylinder_x = copy.deepcopy(mesh_cylinder)
Tx = np.eye(4)
Tx[:3, :3] = o3d.geometry.get_rotation_matrix_from_xyz((np.pi / 2, 0,0))
print("과제 2 x축 회전 동차변환 행렬\n",Tx)
mesh_cylinder_x.transform(Tx)
mesh_cylinder_x.paint_uniform_color([0.1, 0.9, 0.1])
axis_frame= o3d.geometry.TriangleMesh.create_coordinate_frame(size=3,
origin=[0, 0, 0])
o3d.visualization.draw_geometries([axis_frame, mesh_cylinder,
mesh_cylinder_y, mesh_cylinder_x],width=500,height=500)