当前位置: 首页 > news >正文

西安网站开发哪家好wordpress 曙提

西安网站开发哪家好,wordpress 曙提,华夏集团网站建设,跟我学seo此案例包含了简单的碰撞检测#xff0c;圆形碰撞检测方法#xff0c;也可以说是五环弹球的升级版#xff0c;具体可以根据例子参考。粒子花园这名字是案例的名字#xff0c;效果更加具有科技感#xff0c;很是不错#xff0c;搞搞做成背景特效也是不错的选择。Wpf 和 Ski… 此案例包含了简单的碰撞检测圆形碰撞检测方法也可以说是五环弹球的升级版具体可以根据例子参考。粒子花园这名字是案例的名字效果更加具有科技感很是不错搞搞做成背景特效也是不错的选择。Wpf 和 SkiaSharp新建一个 WPF 项目然后Nuget 包即可 要添加 Nuget 包Install-Package SkiaSharp.Views.WPF -Version 2.88.0其中核心逻辑是这部分会以我设置的 60FPS 来刷新当前的画板。skContainer.PaintSurface  SkContainer_PaintSurface; _  Task.Run(()  {while (true){try{Dispatcher.Invoke(() {skContainer.InvalidateVisual();});_  SpinWait.SpinUntil(()  false, 1000 / 60);//每秒60帧}catch{break;}} });弹球实体代码 (Ball.cs)public class Ball {public double X { get; set; }public double Y { get; set; }public double VX { get; set; }public double VY { get; set; }public int Radius { get; set; }public int Move { get; set; }public SKColor sKColor { get; set; }  SKColors.Blue;/// summary/// 检查球的碰撞/// /summarypublic static void CheckBallHit(Ball b1, Ball b2){var dx  b2.X - b1.X;var dy  b2.Y - b1.Y;var dist  Math.Sqrt(Math.Pow(dx,2)  Math.Pow(dy, 2));if (dist  b1.Radius  b2.Radius){var angle  Math.Atan2(dy, dx);var sin  Math.Sin(angle);var cos  Math.Cos(angle);// 以b1为参照物设定b1的中心点为旋转基点double x1  0;double y1  0;var x2  dx * cos  dy * sin;var y2  dy * cos - dx * sin;// 旋转b1和b2的速度var vx1  b1.VX * cos  b1.VY * sin;var vy1  b1.VY * cos - b1.VX * sin;var vx2  b2.VX * cos  b2.VY * sin;var vy2  b2.VY * cos - b2.VX * sin;// 求出b1和b2碰撞之后的速度var vx1Final  ((b1.Move - b2.Move) * vx1  2 * b2.Move * vx2) / (b1.Move  b2.Move);var vx2Final  ((b2.Move - b1.Move) * vx2  2 * b1.Move * vx1) / (b1.Move  b2.Move);// 处理两个小球碰撞之后将它们进行归位var lep  (b1.Radius  b2.Radius) - Math.Abs(x2 - x1);x1  x1  (vx1Final  0 ? -lep / 2 : lep / 2);x2  x2  (vx2Final  0 ? -lep / 2 : lep / 2);b2.X  b1.X  (x2 * cos - y2 * sin);b2.Y  b1.Y  (y2 * cos  x2 * sin);b1.X  b1.X  (x1 * cos - y1 * sin);b1.Y  b1.Y  (y1 * cos  x1 * sin);b1.VX  vx1Final * cos - vy1 * sin;b1.VY  vy1 * cos  vx1Final * sin;b2.VX  vx2Final * cos - vy2 * sin;b2.VY  vy2 * cos  vx2Final * sin;}} }##粒子花园核心类 (ParticleGarden.cs)/// summary /// 粒子花园 /// /summary public class ParticleGarden {public SKPoint centerPoint;public double Spring  0.0001;public int ParticelCount  100;public ListBall Particles  new ListBall();public SKCanvas canvas;/// summary/// 渲染/// /summarypublic void Render(SKCanvas canvas, SKTypeface Font, int Width, int Height){this.canvas  canvas;canvas.Clear(SKColors.Black);centerPoint  new SKPoint(Width / 2, Height / 2);if (Particles.Any()  false){for (int i  0; i  ParticelCount; i){Random random  new Random((int)DateTime.Now.Ticks);var Length  random.Next(3, 10);Particles.Add(new Ball(){X  random.Next(0, Width),Y  random.Next(0, Height),sKColor  SKColors.White,VX  random.NextInt64(-2, 2),VY  random.NextInt64(-2, 2),Radius  Length,Move  Length});}}//画线for (int i  0; i  Particles.Count; i){Move(Particles[i], i, Width, Height);}//画球foreach (var item in Particles){DrawCircle(canvas, item);}using var paint  new SKPaint{Color  SKColors.Blue,IsAntialias  true,Typeface  Font,TextSize  24};string by  $by 蓝创精英团队;canvas.DrawText(by, 600, 400, paint);}public void Move(Ball p, int i, int width, int height){p.X  p.VX;p.Y  p.VY;for (var j  i  1; j  Particles.Count; j){var target  Particles[j];CheckSpring(p, target, width, height);Ball.CheckBallHit(p, target);}if (p.X - p.Radius  width){p.X  -p.Radius;}else if (p.X  p.Radius  0){p.X  width  p.Radius;}if (p.Y - p.Radius  height){p.Y  -p.Radius;}else if (p.Y  p.Radius  0){p.Y  height  p.Radius;}}public void CheckSpring(Ball current, Ball target, int width, int height){var dx  target.X - current.X;var dy  target.Y - current.Y;var dist  Math.Sqrt(Math.Pow(dx, 2)  Math.Pow(dy, 2));var minDist  width  height ? width / 10 : height / 5;if (dist  minDist){DrawLine(current, target, dist, minDist);var ax  dx * Spring;var ay  dy * Spring;current.VX  ax / current.Move;current.VY  ay / current.Move;target.VX - ax / target.Move;target.VY - ay / target.Move;}}public void DrawLine(Ball current, Ball target, double dist, int minDist){var StrokeWidth  (float)(2 * Math.Max(0, (1 - dist / minDist)));var Alpha  Math.Max(0, (1 - dist / minDist)) * byte.MaxValue;var Color  current.sKColor.WithAlpha((byte)Alpha);//划线using var LinePaint  new SKPaint{Color  Color,Style  SKPaintStyle.Fill,StrokeWidth  StrokeWidth,IsStroke  true,StrokeCap  SKStrokeCap.Round,IsAntialias  true};var path  new SKPath();path.MoveTo((float)current.X, (float)current.Y);path.LineTo((float)target.X, (float)target.Y);path.Close();canvas.DrawPath(path, LinePaint);}/// summary/// 画一个圆/// /summarypublic void DrawCircle(SKCanvas canvas, Ball ball){using var paint  new SKPaint{Color  ball.sKColor,Style  SKPaintStyle.Fill,IsAntialias  true,StrokeWidth  2};canvas.DrawCircle((float)ball.X, (float)ball.Y, ball.Radius, paint);} }效果如下:效果放大看还是很心旷神怡的。总结这个特效的案例重点是碰撞检测同时又产生了奇妙的特效效果很是不错。代码地址https://github.com/kesshei/WPFSkiaParticleGardenDemo.githttps://gitee.com/kesshei/WPFSkiaParticleGardenDemo.git阅一键三连呦感谢大佬的支持您的支持就是我的动力!版权蓝创精英团队公众号同名CSDN 同名CNBlogs 同名
http://www.zqtcl.cn/news/334810/

相关文章:

  • 优秀的设计网站广州排名推广
  • 做电商设计有什么好的网站推荐软件产品开发流程图
  • 建设网站请示宣传企业网站建设的
  • 汉中定制网站建设公司网站建设建站知识
  • 做壁纸网站建站优化办事效率高
  • linux 做网站数据库怎么开发ios软件
  • 沛县网站设计html制作网页的代码
  • 南昌网站建设公司如何万维网络(临沂网站建设)
  • 张家界做网站洛阳网站建设哪家专业
  • 快餐网站模板电子版邀请函制作软件免费
  • 有什么做视频的素材网站网站名称注册保护
  • 北京 顺义 网站制作h5网站网站建设
  • 网站在百度上搜不到了wordpress导航菜单加图片
  • wordpress网站访问慢网站建设35类
  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计