家谱/树形图应该怎么画?

Cocoachina上有位仁兄一直求助这个问题,但是也没人给出Demo参考.虽然楼主以前也没做过类似的功能,但还是愿意试一试,所以就有了今天的这篇文章把一些遇到的问题和心得分享出来,一起学习共勉

思路分析

家谱中有多个人物,关系也比较复杂,各种画线有点乱,为了避免频繁的声明变量以及节约内存,楼主决定直接用CG绘图去写


其实就是想练下手

另外创建一个模型类用来存储一些通用信息,比如姓名,fram,子类,


顺便再玩玩链表

遇到的问题

  • 首先就是链表就遇到了问题,我是这样写的模型类



    自己套自己,有点递归的感觉.刚开始用感觉还不错,但是层级越多,写起来越难以维护且不严谨.

创建模型

可以看出越往下,sunModel的嵌套就越来越多,维护起来越困难.这点希望有达人能够较好的优化下.

  • 实现的时候发现层级完全是个不可控因素,可能多可能少,所以必须有一
    个独立的算法来计算排版,有点类似倒过来的金字塔

想了半天实在不知道怎么描述....简单来说通过一个递归和数组,不断查找是否存在子类,来进行绘图操作,完全页面绘制


突然不知道怎么说

直接附上地址吧:https://github.com/WeiTChen/Tree-diagram

有些地方架构不是很好,希望大牛更正指出,十分感谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容