Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

可以提供正交布局(Orthogonal layout)算法吗

Aperta
#129 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
typescript

Direzione di ricerca

Inizia leggendo le implementazioni esistenti di ERLayout e GridLayout, quindi esamina mysqlWorkbench.ts per determinare se contiene un approccio di layout utilizzabile. Confronta il comportamento attuale con il riferimento yFiles collegato e definisci il completamento in base ad archi ortogonali, attraversamenti limitati, non più di due pieghe e adeguatezza per grafi X6 di piccole dimensioni.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

效果可参考yFiles的正交布局算法:https://live.yworks.com/demos/layout/layoutstyles/
image

关键要求:

  1. 节点和节点之间的连线是直线或正交直角连线
  2. 连线尽量避免交叉,某些场景下可以使用正交自动布局实现连线0交叉,比如小数据量的ER图、关系图谱等
  3. 连线转折点不超过2个
  4. 主要应用在非大数据场景(X6)

尝试过ERLayout,发现效果并不好:
0. ERLayout的options如果width、height和最小nodeSize没有控制好,会导致GridLayout无法绘制足够的网格来摆放所有节点,layout算法没有做检查,控制台报错信息也不清晰,需要深入debug才能找到原因

  1. 节点位置是根据GridLayout实现,并且算出来的结果并不稳定,每次都有可能有差异
  2. 连线没有避免交叉,这样即使设置连线为正交也会交叉
  3. erlayout里面有一个mysqlWorkbench.ts,不知道是不是实现了MySQL Workbench ER图自动布局的算法,如果是有使用方法吗?
Lingua principale
TypeScript
Stelle
280
Fork
61
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di antvis/layout

Tutte le issue di antvis/layout

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.