这里我借鉴了,上周比较火的一个前端文章,人家用js去写的,地址 自己用wpf也写了一个,但是它的  粒子比较,然后连线算法真的很差,他创建了一个加入鼠标点的集合,2个集合进行比较,并且粒子会向鼠标靠近,这个存在很严重问题,如果你真心看了就知道了,粒子吸的太多了,就卡了,而我自己研究只用了一个集合,算法用的高中知识,排列组合的组合知识,   不考虑顺序的比较。当然我的效果跟他不一样,性能比他好多了。

不要说wpf,微软不维护啥的,只是你玩的时间不多,你不会玩而已。用点心,事情就成了,ay来教你

效果exe体验: 下载

1静态效果图

2动态的

整体实现思路,讲解:

先设计个类,用于粒子,在wpf中我用Ellipse去画点,用line画连线

粒子的几个属性,位置 x,y 两个方向的加速度 xa,ya,还有个距离属性max

 /// <summary>/// 粒子类/// </summary>public class GrainBase{public double? x { get; set; }public double? y { get; set; }public double xa { get; set; }public double ya { get; set; }public double max { get; set; }}

第一步做出游离的ellipse  

随机生成,x,y,xa和ya速度

      添加粒子x,y为粒子坐标,xa, ya为粒子xy轴加速度,max为连线的最大距离     for (int i = 0; i <100; i++){GrainBase gb = new GrainBase();gb.x = rand.NextDouble() * Cav.ActualWidth;gb.y = rand.NextDouble() * Cav.ActualHeight;gb.xa = rand.NextDouble() * 2 - 1;gb.ya = rand.NextDouble() * 2 - 1;gb.max = 8000;grains.Add(gb);}

第二步写出算法 计算两点距离,然后比较,是否需要line

这里就需要定时器去不断的刷新了,这里1秒 60帧,一秒60次 DrawingAy方法

   updateTimer = new System.Windows.Threading.DispatcherTimer();updateTimer.Tick += new EventHandler(DrawingAY);updateTimer.Interval = new TimeSpan(0, 0, 0, 0, 1000 / 60);updateTimer.Start();

然后线的 宽度和颜色,透明度,根据距离比设定

所有的点都要比较,那么我用了类似 排列组合的算法中的   组合,不考虑顺序,两两比较,比如 123,三个粒子,就比较 1和2,1和3, 2和3,3次,减少次数。

由于博客园的关系,我发誓不再用博客园了,不会再分享,谢谢了,拿到代码的同志,谢谢支持你们的支持了

当然如果你聪明,凭借我上面给的思路和代码,你已经能够写出来了,如果需要源码,对不起了,博客园做的事情,我太愤怒,没了

2015年11月18日 ===== AYUI       www.ayjs.net      AY         杨洋原创编写,请不要转载谢谢=======

转载于:https://www.cnblogs.com/AaronYang/p/4973637.html

[ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果相关推荐

  1. [原创作品]轮播焦点图插件的实现

    在上上一期写了怎么写jq插件,现在,我把我写的一个焦点图插件贡献出来.不会写插件的朋友们可以参考我上次写的:http://www.cnblogs.com/zhutty/p/4630110.html.因 ...

  2. [征询意见]准备采用“创作共用”协议保护大家的原创作品

    为了保护大家的原创作品,博客园准备采用"创作共用"协议. Creative Commons (创作共用) 是网络上的数字作品(文学.美术.音乐等)许可授权机制,它致力于让任何创造性 ...

  3. 电脑键盘功能介绍_Excel应用041:全能电脑抽奖神器(功能介绍)(原创作品) ?...

    每当公司举行年会或大型活动时,总是进行一些抽奖活动,本文介绍一种基于Excel为基础的开发的抽奖软件全能电脑抽奖软件(原创作品)(有需要的留言免费送文件,不喜欢的请绕行!!!). 1. 主要功能及特色 ...

  4. 设计师交流社区,在集设原创作品通过交流发现问题,不断进步!

    在设计师社区,人气暴涨的集设.设计师社区未来将养成大量中国本土商业图片人才,助推图片库发展. 集设聚集了大量的爱好者就会是设计师和创意者,他们可以提供大量优质素材,形成强有力的图片供给源头,成为的核心 ...

  5. php的作品简介怎么写,作品简介怎么写(绘画作品简介范文100)

    作品简介 怎么写?是甚么意思?应位我有美术作业要写作品简介,但我不知道. 大概就是介绍一下你这个作品的构思,还有你想表达给观者的想法,或者是它有没有代表着特别的意义 写出主题.主旨,创作背景及灵感来源 ...

  6. 新元宇宙奇科幻小说原创作品每周连载《地球人奇游天球记》第九回女神伴飞

    二十一世纪"新元宇宙"奇科幻小说原创作品系列每周连载[第一部]                <地球人奇游"天球"记>               ...

  7. 2020.9.20深圳湾-莫安迪摄影原创作品

    2020.9.20深圳湾-莫安迪摄影原创作品

  8. 二十一世纪“新元宇宙”奇科幻小说原创作品系列连载【第一部】第二回 登峰时刻

    二十一世纪"新元宇宙"奇科幻小说原创作品系列连载[第一部] <地球人奇游"天球"记> 第二回    登峰时刻 1.静沐"新哲学" ...

  9. 自媒体平台大鱼号怎样开通视频原创保护,原创证明材料如何写?

    2017年是自媒体成长成熟的一年,也是短视频爆发的一年,今年,各大平台都在布局短视频领域,并重金扶持和鼓励原创短视频. 近期如果有玩大鱼号发视频的朋友应该都有收到大鱼号视频原创保护申请的邀请,大鱼号作 ...

最新文章

  1. 串口的硬件流控和软件流控
  2. 如何知道网站的IP,然后利用IP登陆网站?
  3. xtrabackup安装使用
  4. jupyter notebook如何打开其他文件夹下的iqynb文件
  5. 测试工程师,必须掌握的shell变量知识
  6. (转)走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制 ---(摘自CSDN论坛)
  7. 放弃 Google 搜索引擎,Firefox 欲用必应替代?
  8. ASSD: Attentive Single Shot Multibox Detector
  9. R语言入门(3)——R包的使用
  10. 俄亥俄州立大学计算机科学转学成功,录取捷报|努力定有回报,斩获俄亥俄州立计算机转学录取...
  11. 计算机混合运算java,大话Java混合运算规则
  12. CNN实现简单语音识别(单词识别)
  13. 采用uni-app开发的多端圈子社区论坛系统
  14. mysql floor 不准确_MYSQL的floor出现报错如何解决
  15. 工业元宇宙三人行系列直播活动第五场在北京举办
  16. Frida出现process with pid XXXX either refused to load frida-agent, or terminated during injection错误的原因
  17. 第十二届蓝桥杯D题 货物摆放
  18. CustomList
  19. Matlab绘制幅值谱和相位谱
  20. 工具使用 - 开发、办公工具分享

热门文章

  1. Divide Two Integers
  2. regression
  3. jenkins安装插件一直不动
  4. C#装箱,拆箱和强制转换(转)
  5. IPC 之 Binder 初识
  6. C++ 创建一个窗口
  7. mysql err 1118_MySQL ERROR1118报错详解 Row size too large
  8. hadoop api 复制文件_Hadoop发布新组件:分布式对象存储系统Ozone
  9. nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return
  10. 安装全局消息钩子实现dll窗体程序注入