WPF星空效果

效果

前阵子看到ay的蜘蛛网效果与知乎的记名页背景,觉得效果异常酷.自己为想写一个.于是摹写在写在就是成为这样了.少女梦幻之赶脚有木有.我立即所有一样发少女心中之抠脚大汉

图片 1

心想事成思路

分为两只有:

1.星星随便终止的漫游.

2.星星之间的连线.

区区和连线非别放到两独容器里,以便分开操作.

星星

管有限的活动分解为X轴和Y轴两单不相干的走,分别操作.操作就是比照机生成一个进度,随机大成一个时间.运动完之后再也比如机生成一个快,随机大成一个年华……无限循环.

些微的旋也是平的道理.

连线

首先解释下连线的规则.两独简单之间连线,每个片都发生一个连线的势力范围,就是涨幅乘以连线倍率,这个连线倍率可以当窗体设置.当半个势力范围来交集的上,就连线.

章:星1宽度5,星2涨幅10,连线倍率是3,那么这片独简单的离开小于5*3+10*3=45经常虽连线,大于45常常绝对开.如果连线倍率设置也4,则鲜单星星减的离开小于5*4+10*4=60时连线,大于60时断开.

心想事成和资源占有率

些微运动的落实有星星点点种植:

1.基吃Grid和TranslateTransform.用DoubleAnimation动画控制星星的各项移.

2.基给Canvas.通过帧动画控制Canvas的X,Y.

连线的贯彻啊起有限种植:

1.简练多少暴.在每一样帧都清空连线容器.然后双层循环星星,重新连接有片(符合连线规则之).

2.以各国一样轴循环连线,判断连线规则.符合就改变这个连线的X1,Y1,X2,Y2.如果无失去再new连线.不入规则之尽管易除了.然后仍旧是双层循环星星,看符规则的星星点点单片间有没有出连线,没有的便new一个.

显然,WPF做这种动画资源占有率还是比强的,写了这般多实现,也是盖这个.

约莫上要根据Canvas的实现占用资源稍低.但也发出只问题,如果让点儿再加一个歪曲效果的语,基于Canvas实现之资源占有率不见面飙升,而是帧数明显降低.(也说不定是自个儿电脑环境的由来)

连无可知说那种实现好和那个,可能具体运作条件不雷同,参数设置不一样,每种实现都发生差的表现.

然后关于资源占有率问题,以自手上之程度,就独自能够顶立刻了.博友们好选择吧.

 

源码下载:星空效果的有限栽实现.zip

发表评论

电子邮件地址不会被公开。 必填项已用*标注