[파이썬] 3차원 공간에 라벨 표시하기 (pyvista)
3차원 공간에 라벨을 표시하는 방법은 아래와 같습니다. 다양한 옵션 적용이 가능합니다. import pyvista as pv #라벨 위치 정의 x_label=pv.PolyData([0,0,0]) y_label=pv.PolyData([0,10,0]) z_label=pv.PolyData([0,20,0]) # 캔버스 정의 p = pv.Plotter() #라벨 그리기 p.add_point_labels(x_label, ["x"],point_color='yellow',text_color='red', point_size=20, font_size=40,render_points_as_spheres=True,always_visible=True,show_points=False) p.add_point_labels(y_labe..
2022. 1. 18.
[파이썬] 3차원에 선 그리기 (pyvista)
3차원 공간에 선을 그리는 방법은 아래와 같습니다. import pyvista as pv #선 정의 x_axis=pv.Line((0,0,0),(150,0,0)) y_axis=pv.Line((0,0,0),(0,150,0)) z_axis=pv.Line((0,0,0),(0,0,150)) # 캔버스 정의 p = pv.Plotter() # 선 그리기 p.add_mesh(x_axis,color='yellow') p.add_mesh(y_axis,color='yellow') p.add_mesh(z_axis,color='yellow') #그래프 보이기 p.show()
2022. 1. 18.
[파이썬] 점 3차원 그래프 그리고 크기,색 설정 (pyvista)
넘파이를 이용하여 점을 생성합니다. import numpy as np import pyvista as pv point = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0.5, 0.5, -1]]) 그래프를 그려봅시다. p = pv.Plotter() # 캔버스 정의 p.add_mesh(point) p.show() 설정할 수 있는 옵션은 아래와 같습니다. add_mesh(self, mesh, color=None, style=None, scalars=None, clim=None, show_edges=None, edge_color=None, point_size=5.0, line_width=None, opacity=1.0, flip_scalars=False, l..
2021. 11. 8.
파이썬 pyvista 모듈에서 stl 병진,회전,변환(translate, rotate, transform)
넘파이와, pyvista 모듈을 불러옵니다. import numpy as np import pyvista as pv mesh 하나를 정의합시다. import numpy as np import pyvista as pv # mesh points vertices = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0.5, 0.5, -1]]) # mesh faces faces = np.hstack([[4, 0, 1, 2, 3], # square [3, 0, 1, 4], # triangle [3, 1, 2, 4]]) # triangle mesh = pv.PolyData(vertices, faces) 병진,회전,변환 메소드는 아래와 같이 사용합니다. STL.tran..
2021. 11. 8.
파이썬 numpy stl 모듈에서 stl 병진,회전,변환(translate, rotate, transform)
넘파이와, stl 모듈을 불러옵니다. import numpy as np from stl import mesh mesh를 하나 불러와서 STL이라는 변수에 입력했다고 가정합시다 . STL=mesh.Mesh.from_file('ex.stl') 병진,회전,변환 메소드는 아래와 같이 사용합니다. STL.translate(np.array([x,y,z])) STL.rotate(axis, theta=0, point=None) STL.transform(matrix) ; 4x4 행렬
2021. 11. 8.
pyvista 자료형인 PolyData 에서 사용가능한 메소드들
pyvista에서 stl을 생성하거나, point cloud를 생성하거나, stl 을 불러올 때 사용하는 메소드는 pv.PolyData 입니다. PolyData에서 사용가능한 메소드들을 살펴봅시다. 먼저 PolyData 를 하나 생성하였습니다. import numpy as np import pyvista as pv # mesh points vertices = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0.5, 0.5, -1]]) # mesh faces faces = np.hstack([[4, 0, 1, 2, 3], # square [3, 0, 1, 4], # triangle [3, 1, 2, 4]]) # triangle mesh = pv.PolyDa..
2021. 11. 8.
pyvista 매쉬 생성 원리
pyvista에서는 아래 형식으로 매쉬를 생성합니다. import pyvista as pv mesh = pv.PolyData(vertices, faces) vertices는 매쉬 생성에 사용되는 점이고, faces는 면에 대한 정보입니다. 아래는 pyvista documentation 에서 제공하는 예시입니다. import numpy as np import pyvista as pv # mesh points vertices = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0.5, 0.5, -1]]) # mesh faces (일렬로 나열한 것과 같음) faces = np.hstack([[4, 0, 1, 2, 3], # square [3, 0, 1, 4],..
2021. 11. 8.
RGB는 알겠는데 RGBA는 무엇인가
RGB는 Red Green Blue 의 약어입니다. 빨강, 초록, 파랑은 삼원색입니다. 세가지 색을 혼합하면 모든 색을 만들 수 있습니다. 셋중 둘을 혼합하여 나머지 하나를 만드는 것은 불가능합니다. 세 색은 서로 '독립'입니다. 세 색을 얼마나 섞을 것인가를 0~1사이 숫자로 나타냅니다. 예를들어 (1,0,0) 은 빨강입니다. (0,1,0)은 초록입니다. (0.5,0.5,0)은 빨강과 초록을 반씩 섞는 것을 의미합니다. (0.5,0.5,0.1)은 빨강,초록,파랑을 5:5:1 로 섞는 것입니다. 0~1이 아니라 0~100사이의 숫자로 나타내기도 합니다. 여기에 투명도 개념을 추가할 수 있습니다. RGB로 나타낸 색의 투명도를 $\alpha$로 나타내고 $\alpha$가 0이면 완전 투명, 1이면 완전 불..
2021. 10. 25.