• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (212)
      • react & next.js (12)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 계기판 차트 만들어보기
        2023년 12월 17일
        • 루루개발자
        • 작성자
        • 2023.12.17.:53
        반응형

        d3 라이브러리를 활용해서 계기판 차트를 한번 만들어보았습니다. 

         

        계기판 차트 시연 영상

        화면 기록 2023-12-17 오후 1.54.37.mov
        5.63MB

         

        개발 코드

        https://github.com/wisdomstar94/d3-custom-librarys/blob/main/src/app/instrument-panel/page.tsx

        계기판 차트 구현 코드는 위 URL 에서 확인해보실 수 있습니다.

         

        완성 이미지

        • value : 현재 값
        • minimum : 최소 값
        • maximum : 최대 값
        • unitCount : 계기판을 이루는 요소들의 총 갯수
        • unitAngle : 계기판을 이루는 요소들이 차지하는 원주율 값
        • strokeWidthAngle : 계기판을 이루는 요소들의 총 길이가 차지하는 원주율 값
        • strokeWeight : 계기판을 이루는 요소들의 두께 값
        • cornerRadius : 계기판을 이루는 요소들의 라운딩 값
        • startFillColor : 계기판이 채워질 때 최소값에 해당하는 색상
        • endFillColor : 계기판이 채워질 때 최대값에 해당하는 색상
        • displayLineUnitCount : 눈금자에 표시되는 수치 텍스트의 총 갯수

         

        깊이 고민해야 했던 부분

        arc 모양을 그릴 때는 d3 에서 제공해주는 arc 함수를 사용하면 쉽게 그릴 수 있었지만, 눈금자 부분에 수치 텍스트를 위치시키는 부분이 문제였습니다.

         

        그래서 눈금자 위치에 수치 텍스트를 어떻게 맞춰서 위치시킬 수 있을까를 고민해보던 찰나, 아래와 같은 이미지가 머릿 속에 떠올랐습니다.

         

        그렇습니다. 바로 학생 때 배웠던 삼각함수를 응용하면 원하는 눈금자 위치에 맞는 x, y 좌표를 구할 수 있을 것 같았습니다. 그래서 javascript 에서 제공해주는 Math.sin 함수와 Math.cos 함수를 이용하여 각 눈금자 위치에 맞는 x, y 좌표를 구해 해당 위치에 눈금자 수치 텍스트를 위치시킬 수 있었습니다.

         

        참고 사이트

        https://www.pinterest.co.kr/pin/311241024259236439/

         

        App interface design, Graph design, Gauges

         

        www.pinterest.co.kr

        계기판 UI 는 위 자료를 참고하였습니다.

        반응형
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바