高分求绘制树状结构的组件或者源码或者相关信息,来客皆有分^_^(4)

common_man 2005-05-15 08:24:39
我希望在我的程序的视图中画出一个小型无线网络的动态拓扑树,当然,这可以使用树形控件,方便快捷,但是其缺点也是显而易见的:
1.树形控件中的树状结构是自左向右生长的,不符合常规树状结构的逻辑(常规树状结构应该是根在上方,自顶向下生长),不直观;
2.我想在拓扑树中表现一些网络动态信息,比如用闪烁的叶子节点来表示一个刚刚发现的无线网络节点,用闪烁的连线来表示刚刚发现的链路,在链路上附上箭头来表述数据包的流动等等,但是树形控件的表现力单薄,无法实现这些;
3.从视觉效果上讲,树形控件也不够美观漂亮,嘿嘿。

我在网上也找了几天,没有什么斩获,所以,我想请各位帮忙找找可有绘制树状结构的组件(比如绘制实时曲线方面就有很好用很漂亮的组件),或者相关源码,或者提供一点相关信息。来捧场的各位都有分,谢谢了!

另:相同的帖子我打算发4个,都是200分的,下面会给出各个帖子的地址,斑竹大人不要见怪啊,心情急切之间,才有此仓卒之举啊,嘿嘿,敬请放行……
...全文
168 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
shicheng521 2005-05-19
  • 打赏
  • 举报
回复
up一下
学习学习
common_man 2005-05-18
  • 打赏
  • 举报
回复
来了也up一下
common_man 2005-05-17
  • 打赏
  • 举报
回复
临走再up一下,嘿嘿
common_man 2005-05-17
  • 打赏
  • 举报
回复
晚上不想干活,于是到IEEE和cnki上搜了一下,下了不少文章——画树算法也是一个小小的研究热点,毕竟树形结构的用处还是很多的,嘿嘿。文章中给出的多叉树的美观准则无外乎以下几条:
1.树是平面图,树中不同层的结点位于不同的水平线上,且这些水平线互相平行;
2.父结点位于儿子结点的上一层,同一层上的结点间的距离不小于一个规定值;
3.在水平方向上,父结点位于其最左和最右儿子结点的中央;
4.树所占的宽度要尽量小。

有文章给出了一个画树算法的基本思路:
对于一棵m叉树,其根结点为T,如果T的儿子为空(即只有一个根结点),就直接画,否则,递归调用m叉树画树算法,画出根结点T的所有子树,然后把它们放置再一起,使它们的根结点互相重合,将它们移开,使这些子树中同一层上的结点间的距离都不小于一个事先规定的最小间距值,最后再根据美观准则3画出根结点T,从而完成m叉树的画树过程。

其实,给出树中各个节点的横坐标,就能画出树了,甚至精确的坐标都不用,逻辑坐标就可以了,比如下面一个树,其中A,B,C,D四个节点的逻辑坐标就可以设为1,0,1,2.
A
/ | \
B C D

从上面的基本思想出发,我思考了一下,大致勾勒出了一个基于树的深度遍历的算法框架:
设根节点为T,假设通过递归调用已经获得了前i-1棵子树各个节点的逻辑坐标,同时记录下了第i-1棵子树每一层最右节点的逻辑坐标,记为数组A,将第i棵子树的根节点的逻辑坐标设为第i-1棵子树的逻辑坐标,然后递归调用算法,得到第i棵子树各个节点的逻辑坐标,递归调用返回时带出第i棵子树每一层最左节点的逻辑坐标,记为数组B,然后将A与B比较,根据上述美观准则2就可以得出第i棵子树应该平移的逻辑坐标值,然后再对第i棵子树进行一次遍历,修改其中每个节点的逻辑坐标值,即加上那个偏移值,这样,就得到了第i棵子树各个节点的逻辑坐标……在求出T的每一棵子树的逻辑坐标值后,利用美观准则3就可以给出T的坐标值。

我还不清楚上述算法能不能满足准则4,但我想应该差不多够用了,各位帮我看看有没有什么破绽,谢谢!

树画出来了,至于什么闪烁之类的效果,还是自己动手吧,嘿嘿,明后天把算法细化一下,然后就开始自力更生了,如果效果还不错,愿与大家共享……
common_man 2005-05-17
  • 打赏
  • 举报
回复
今天中午给平安保险公司的人给狠狠郁闷了一下,唉,从前父母长辈都说保险公司都是骗人的,还不怎么信,今天算是领教了,对于保险公司,我们消费者是弱势群体,它们利用信息不对称来骗我们入保,等真正有了损失也已各种理由不给赔,呵呵,吃一堑长一智,不再上他们的当了,要是买,还是买国外的保险公司的。。。
说了一点题外话,嘿嘿,再顶顶帖子,明后天揭帖,然后开始写代码 :(
LCBoy 2005-05-17
  • 打赏
  • 举报
回复
lbird 2005-05-17
  • 打赏
  • 举报
回复
你的要求比较特殊,可能要自已写
common_man 2005-05-17
  • 打赏
  • 举报
回复
再来up一下
Dynamic 2005-05-16
  • 打赏
  • 举报
回复
owner draw
xift_2008 2005-05-16
  • 打赏
  • 举报
回复
呵呵~~~
以发送,楼主查收~~~
common_man 2005-05-16
  • 打赏
  • 举报
回复
I will be here just waiting for a miracle......
common_man 2005-05-16
  • 打赏
  • 举报
回复
谢谢楼上,我的信箱如下:
yang_yu_1978@163.com
xift_2008 2005-05-16
  • 打赏
  • 举报
回复
给个E-mail地址,发给你一个试试(我也没有用过,呵呵)~~~
xift_2008 2005-05-16
  • 打赏
  • 举报
回复
呵呵,帮楼主顶一下~~~
common_man 2005-05-16
  • 打赏
  • 举报
回复
临走up一下
common_man 2005-05-16
  • 打赏
  • 举报
回复
嘿嘿,比较冷清,我再顶顶
common_man 2005-05-16
  • 打赏
  • 举报
回复
不顶,很快就沉下去了,嘿嘿
common_man 2005-05-16
  • 打赏
  • 举报
回复
呵呵,自己再顶一下,其实我已经做好自己写的准备了,不过还是想再等等,如果能找到像ProEssentials那样专业级的组件就好了,人多力量大,大家帮找找
common_man 2005-05-16
  • 打赏
  • 举报
回复
嘿嘿,楼上的兄弟能不能想办法搞点信息?我这里是研究性质的,作项目鉴定而已,不搞商业化^_^
我的email:yang_yu_1978@163.com
love_xf 2005-05-16
  • 打赏
  • 举报
回复
公司里有这样的源码,呵,不过公司不能上网不能带存储,:)也是爱莫能助了
加载更多回复(12)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧