[플라네타리움 구현기] 5. 다듬기

목차

핵심 기능은 다 구현이 되었기 때문에, 부가적인 요소를 생각해봅시다.

별 겉보기등급 반영

여러가지 함수를 테스트해봤지만 1차식을 사용했을 때 가장 그럴싸한 결과가 나오는 것을 확인할 수 있었습니다.

5등급정도의 별이 1px정도의 크기를 가지고, 0등급정도의 별이 7px정도의 크기를 가지게 만들어줍시다. 절대적인 공식은 없고, 보기에 적절하게 조절된 것 같을때가지 변수를 조절해주면 됩니다.

1
2
// brightness : mag -> size
const brightness = mag => Math.min(6.0, (-11/9) * mag + (21/3));;

[플라네타리움 구현기] 2. 스켈레톤 구현

목차

지난챕터에는 별들의 좌표를 얻기위해 HYG database에서 필요한 정보만 추출했습니다.

이번 챕터에서는 브라우저에서 사용될 코드를 작성합니다.

단순한 플라네타리움의 구현이 목표이기 때문에, 프론트(HTML, CSS, JS) 코드는 최소한으로 간단하게만 구성합니다.

이번 챕터에서 프론트에서 구현해야 하는 로직은 다음과 같습니다.

  • json 파일 로드
  • json에 들어있는 좌표만큼 element(<star>라는 태그이름을 쓰겠습니다) 생성
  • 좌표값을 이용하여 window에 element 배치

참고로, 별마다 HTML element를 생성한다면 성능에 큰 문제가 있을 가능성이 높습니다. 하지만 제대로 표현되는 것을 확인하는데에는 문제가 없으니 이대로 진행한 후 성능개선이 필요한 경우 해당 부분을 교체하면 됩니다.

[플라네타리움 구현기] #0. 들어가며

목차

들어가며

눈이 좋은사람이 밤하늘을 본다면 대략 7.9등급의 별까지 보인다고 합니다.

천체투영기(플라네타리움)를 이용하면 시간과 장소에 구애받지 않고, 가상으로 구현된 밤하늘을 볼 수 있습니다.

이 글에서는 웹 브라우저로 실제 접속중인 위치에서의 밤하늘이 어떻게 보이는지 구현하는 방법과 예시를 설명합니다.

보다 더 자세하고 기능이 다양한 플라네타리움 프로그램이 필요한 경우 스텔라리움과 같은 천체투영 프로그램을 이용하면 됩니다. 스텔라리움과 같은 프로그램은 웹 버전 역시 지원하고 있습니다.