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

网站建设款属于什么科目域名交易

网站建设款属于什么科目,域名交易,网站后台空白,梧州做网站建设一、介绍 分离轴算法(简称SAT)通常用于检查两个简单多边形(凸边形)之间或多边形与圆之间的碰撞。本质上,如果您能够绘制一条线来分隔两个多边形,则它们不会发生碰撞,如果找不到一条线来分割两个…

一、介绍

       分离轴算法(简称SAT)通常用于检查两个简单多边形(凸边形)之间或多边形与圆之间的碰撞。本质上,如果您能够绘制一条线来分隔两个多边形,则它们不会发生碰撞,如果找不到一条线来分割两个多边形,则它们发生碰撞。

如图:

 

 

        具体做法是遍历两个多边形的所有边,求得每条边的法向轴,再求出每个多边形在法向轴上的投影,求出投影的最大值点和最小值点,通过比较两个多边形的最值点的关系得出是否碰撞。

演示:

 

 

 

 

 

 

 

 运行代码:

获取在法向轴上投影的函数:

public void ProjectPolygon(Vector2 axis, Polygon polygon, ref float min, ref float max)
{//要在轴上投影一个点,使用点积float dotProduct = Vector2.Dot(axis, polygon.Points[0]);min = dotProduct;max = dotProduct;for (int i = 0; i < polygon.Points.Count; i++){dotProduct = Vector2.Dot(polygon.Points[i], axis);if (dotProduct < min){min = dotProduct;}else{if (dotProduct > max){max = dotProduct;}}}
}

 判断是否相交函数:、

  public float IntervalDistance(float minA, float maxA, float minB, float maxB){if (minA < minB){return minB - maxA;}else{return minA - maxB;}}

检测函数:

    public bool CollisionDetection(Polygon polygonA, Polygon polygonB){int edgeCountA = polygonA.Edges.Count;int edgeCountB = polygonB.Edges.Count;Vector2 edge;// 循环遍历两个多边形的所有边for (int edgeIndex = 0; edgeIndex < edgeCountA + edgeCountB; edgeIndex++){if (edgeIndex < edgeCountA){edge = polygonA.Edges[edgeIndex];}else{edge = polygonB.Edges[edgeIndex - edgeCountA];}//查找多边形当前是否相交// 找出垂直于当前边的轴Vector2 axis = new Vector2(-edge.y, edge.x);axis.Normalize();// 求多边形在当前轴上的投影float minA = 0; float minB = 0; float maxA = 0; float maxB = 0;ProjectPolygon(axis, polygonA, ref minA, ref maxA);ProjectPolygon(axis, polygonB, ref minB, ref maxB);// 检查多边形投影当前是否相交if (IntervalDistance(minA, maxA, minB, maxB) > 0)return false;}return true;}

结果演示:

碰撞检测算法-分离轴算法

参考链接:

https://code.tutsplus.com/collision-detection-using-the-separating-axis-theorem--gamedev-169t

How 2D Game Collision Works (Separating Axis Theorem) - YouTube

Collision Detection with SAT (Math for Game Developers) - YouTube

http://www.hkea.cn/news/120618/

相关文章:

  • 农产品网络营销模式百度推广怎么优化
  • 公司网站维护如何做分录自己搭建一个网站
  • 做期货浏览哪些网站网络优化工程师前景如何
  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法
  • 厦门做点击付费网站培训教育
  • 常州网站建设案例网站制作建设公司
  • 外国人做家具的网站一站传媒seo优化
  • 佛山h5建站模板怎样优化网站
  • 第三方做公司网站谷歌搜索广告优化
  • 网站风格模板快速排名精灵
  • 做网站横幅 的网站推荐几个公司推广
  • html5国内网站建设客户管理软件
  • 网站建设报价单站长工具 seo查询
  • 日本电商网站贵州快速整站优化
  • 物业服务网站建设建立网站要多少钱一年
  • 中铁建设门户加长版廊坊百度提升优化
  • 最便宜的外贸网站建设电商平台运营方案
  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好