1

나는 태양계 행성 (및 다른 객체)의 속도와 위치를 예측하기 위해 코스의 프로젝트에서 연구 중이다. 예측 된 객체 데이터를 시각화 할 수 있다면 3D 이미지를 생성 할 수 있다면 정말 멋질 것입니다. 이 데이터를 사용하여 이미지 또는 비디오를 생성 할 수있는 라이브러리를 알고 있습니까? (난 상관하지 않는 언어)데이터로부터 기하학적 객체의 비디오 또는 이미지 생성하기

데이터 :
- 시뮬레이션 단계 (비디오에 대한 타임 라인 단계)
- 객체의 위치
- 객체의 반경 및/또는 색상

미리 감사드립니다. 어떤 제안이라도 환영합니다.

답변

1

필자는 매우 전문적인 것으로 보이기 위해 꽤 많은 부분이 필요할 지 모르지만 출발점으로 유용 할 수있는 매우 어려운 아이디어가 있습니다. 귀하의 데이터는 주어진 시점에서 우주의 각 행성의 위치를 ​​알려줍니까? 그렇다면 다음과 같이 할 수 있습니다.

1) 원래 3D 인 경우 2 차원 방법을 사용하여 여전히 3 차원으로 표시되는 것처럼 보이는 데이터를 나타낼 수 있도록 위치 데이터를 2 차원으로 투영합니다. 화면)

2) 결과는 행성의 위치를 ​​저장하는 일련의 2 차원 행렬이어야합니다. 행성의 위치에 해당하는 경우 행렬 요소를 1로하고 그렇지 않으면 행렬 요소를 0으로 합니다. (행렬을 플롯하려면 검은 색 바탕에 소수의 흰 점들처럼 보일 것입니다.) 3) 형태학적인 확장을 사용하여 모든 위치 점을 가져 와서 이웃 값을 1로 설정하십시오. 0으로 설정하면 플롯 할 때 단계 (2)의 점을 중심으로 원반 모양의 흰색 물체가 생깁니다.

4) 프로그램을 사용하여 (3)의 각 행렬을 이미지 파일에 쓰고 공통 폴더에 저장하십시오.

5) 런타임에 다른 프로그램을 사용하여 폴더의 각 이미지를 한 번에 하나씩 가져 와서 동일한 그림 창에서 화면에 표시하십시오. 결과는 시간 t에서 행성을 나타내는 각 이미지가 시간 (t-1) 동안 그림을 대체한다는 것입니다. 비디오 파일이 해당 창에서 재생중인 것과 똑같은 모양이어야합니다.

최종 결과는 검정색 배경에 대해 궤도에있는 흰 동그라미의 무리가 움직이는 모습을 보여줍니다. 유용할까요?

+0

아이디어를 제공해 주셔서 감사합니다.하지만 필요한 솔루션을 찾지 못했습니다. 2D 대신 그래픽이 3D 여야합니다. 나는 모든 데이터 (반지름, 위치, 속도 등)를 가지고 있으며, 그리기 쉬운 방법을 찾고있다. 실제로 gnuplot을 사용하고 3D 이미지를 그래프로 표시하고 있지만 더 나은 방법이 있어야한다고 생각합니다. 감사! –

2

내가 시각화 이러한 유형의 (모든 파이썬을 통해) 사용했습니다 몇 가지 방법이 있습니다 :

VPython 배우기 매우 쉬운 당신은 주위 회전하는 행성의 동적 3D 시각화를 얻을 수 있습니다 태양이 분. 영화 제작에도 도움이되는 기부금이 있지만 이것들을 사용하지 않았습니다.

예를 들어 PyOpenGL을 통해 wxPython 윈도우에서 OpenGL을 직접 사용할 수도 있고, 예를 들어 PyGlet을 사용하여 OpenGL을 사용할 수도 있습니다. 이 접근법은 VPython보다 조금 더 기본이며, 영화 제작을 위해 알아야 할 유일한 방법은 스크린 샷 등입니다.

VTK은 매우 인상적인 3D 시각화 라이브러리입니다. 배우다. VTK는 다른 것들과 마찬가지로 동적 인 시각화 기능을 즉시 사용할 수 있으며 이미지 및 영화 제작을위한 모듈을 내장 한 유일한 제품입니다.그러나 훨씬 더 복잡한 라이브러리이지만, 벡터 - 필드 이온 폭풍의 한가운데, 가스 구름의 등고선 플롯을 사용하여 행성이 별 주위를 돌고 싶어한다면, VTK는 그것을 할 수 있습니다. 또한 MayaVi이있어 VTK를 좀 더 쉽게 액세스하고 상호 작용할 수 있습니다.

+0

감사! VPython을 살펴 보겠습니다. –

+0

나는 그것을 시험해 보았다. 정말 멋지다. 나는 그것을 좋아하지만, 내가 원하는 것에는 도움이되지 않는다. 그 이유는 행성의 벡터 (또는 천문학적 인 물체)의 수가 많기 때문입니다. vpython의 유스 케이스는 가까운 위치에있는 객체를위한 것이다. 도구는 좋지만 사용 사례는 아닙니다. 감사! –

+0

모든 것을 확장 할 수 없습니까? 물론 우주는 크지 만 컴퓨터 화면이 작기 때문에 모든 것을 10^9 또는 원하는만큼 나누면됩니다. – tom10

관련 문제