graph-layout.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. export const GRAPH_VISUAL_SETTINGS = {
  2. baseNodeSize: 6,
  3. maxNodeSize: 20,
  4. minEdgeSize: 0.35,
  5. maxEdgeSize: 2,
  6. minEdgeAlpha: 0.12,
  7. maxEdgeAlpha: 0.42,
  8. } as const
  9. export const GRAPH_LAYOUT_SETTINGS = {
  10. gravity: 0.2,
  11. scalingRatio: 4.6,
  12. slowDown: 2.2,
  13. adjustSizes: true,
  14. strongGravityMode: false,
  15. } as const
  16. export interface GraphVisualTier {
  17. baseNodeSize: number
  18. maxNodeSize: number
  19. minEdgeSize: number
  20. maxEdgeSize: number
  21. minEdgeAlpha: number
  22. maxEdgeAlpha: number
  23. }
  24. export function getGraphVisualSettings(nodeCount: number): GraphVisualTier {
  25. if (nodeCount >= 500) {
  26. return {
  27. baseNodeSize: 4,
  28. maxNodeSize: 14,
  29. minEdgeSize: 0.2,
  30. maxEdgeSize: 1.2,
  31. minEdgeAlpha: 0.06,
  32. maxEdgeAlpha: 0.25,
  33. }
  34. }
  35. if (nodeCount >= 100) {
  36. return {
  37. baseNodeSize: 5,
  38. maxNodeSize: 17,
  39. minEdgeSize: 0.28,
  40. maxEdgeSize: 1.6,
  41. minEdgeAlpha: 0.09,
  42. maxEdgeAlpha: 0.34,
  43. }
  44. }
  45. return {
  46. baseNodeSize: GRAPH_VISUAL_SETTINGS.baseNodeSize,
  47. maxNodeSize: GRAPH_VISUAL_SETTINGS.maxNodeSize,
  48. minEdgeSize: GRAPH_VISUAL_SETTINGS.minEdgeSize,
  49. maxEdgeSize: GRAPH_VISUAL_SETTINGS.maxEdgeSize,
  50. minEdgeAlpha: GRAPH_VISUAL_SETTINGS.minEdgeAlpha,
  51. maxEdgeAlpha: GRAPH_VISUAL_SETTINGS.maxEdgeAlpha,
  52. }
  53. }
  54. export const GRAPH_LAYOUT_ITERATIONS = 220