안녕하세요.
안드로이드로 마인드맵 어플리케이션 하나 만들어보고 있는데요.
UI가 느낌있게 안나와서 고민하던 중에 obsidian이라는 프로그램을 보게 되었어요.
점이 각 노드이고 인접노드가 많을 수록 커지는 방식인 것 같아요. 그리고 노드에 물리작용도 적용 되어 있더라구요.
각 노드들은 화면을 중심으로 원형-방사형으로 배치 되는 것 같아요.
이 느낌이 너무 좋아서 만들어보려고 했더니 노드배치, 물리작용 알고리즘이 맛있는게 생각이 나지 않네요.
아쉽게도 obsidian의 이 구현부가 오픈소스가 아니라서 내부 구조를 직접 볼 수가 없는 것 같아요.
혹시 위와 같은 그래프를 만드는데 참고할 만한 자료 추천해 주실 수 있을까요?
꼭 디테일한 정보 아니더라도 너무 감사할 것 같아요.
참고로 얼마전에 kotlin multiplatform을 알게 되어서 테스트겸 개인 프로젝트로 진행중이고,
안드로이드 스튜디오에서 kotlin, jetpack compose, aws, firebase로 진행하고 있습니다.
3개의 댓글
무분별한 사용은 차단될 수 있습니다.
ㄹㅇㄹ3
원을 어디에 둘지 정하는건 force atlas 알고리즘인것같음
나도 얼마전에 토이프로젝트에서 비슷한 기능 웹에서 구현하려고 찾아봤는데, 그래프 이름은 network graph 이고
network graph 자체만으로는 어디에 어느 원(노드)을 둘지를 정의하는건 아닌것같더라고 그러다가 본게
sigma.js 에 force atlas 2 예제가 있더라고 딱 저런 모양으로 배치됨
ㄹㅇㄹ3
원 사이즈는 그냥 연결되어있는 수에 비례하게 구현하고, 물리작용 알고리즘은 라이브러리에서 다 구현되어있지 않을까.. 싶고..
도움이 될려나 모르겠네
dogdrippy
진짜 정말 너무 너무 감사해요. 어두운 동굴에서 한줄기 빛을 찾은 것 같은 기분이 들어요.
https://github.com/bosiakov/fa2l - git에 구현해 놓은게 있어서 참고하면 될것 같아요.
잘 보고 성공적으로 마무리 할게요.
혹시 정보가 필요하신 분들은 https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0098679 여기 있습니다.