我正在研究小行星克隆.一切都是2D,用C语言编写.

对于小行星,我正在生成随机的N边多边形.我保证他们是Convex.然后我旋转它们,让它们旋转速度,让它们飞过太空.这一切都有效,非常漂亮.

对于碰撞,我使用的是我自己想到的算法.这可能是一个坏主意,如果推动,我可能会废弃整个事情,并在互联网上找到一个教程.

我已经编写并实现了所有内容,并且碰撞检测工作正常….大部分时间.当屏幕上明显发生碰撞时,它会随机失败,有时会在没有任何触摸时指示碰撞.我要么在某处扯下我的实现,要么我的算法很糟糕.由于我的实现的大小/范围(通过几个源文件),我不想打扰你,只是想让某人检查我的算法实际上是合理的.那时我可以继续寻找一个大虫子.

算法:

对于每个小行星,我有一个函数输出绘制小行星时每个顶点应该在哪里.对于每对相邻的顶点,我为它们所在的线生成公式,y = mx b格式.然后我从我的一个船顶点开始,测试该点以查看它是否在小行星内.我首先插入点的X坐标,然后将输出与实际Y值进行比较.这告诉我该点是在线之上还是之下.然后我对小行星的中心做同样的事情,以确定哪一半的线被认为是小行星的“内部”.然后我重复每对顶点.如果我找到一条线,我的点与小行星的中心不在同一侧,我知道没有碰撞,并且退出检测到该点.由于我的船上有3个点,我必须测试下一个点.如果所有3个点都提前退出,那么船上的任何一点都没有碰撞,我们就完成了.如果由小行星组成的线在所有侧面上绑定任何点,则它位于小行星内部,并设置碰撞标志.

我用这种算法发现的两个问题是:

>它不适用于凹多边形,并且

>在Slope未定义的Edge情况下出现问题.

我已经确保所有多边形都是凸面的,并且已经编写了代码来处理Undefined Slope问题(如果我们除以0,则双重应该返回NAN,因此很容易测试它).

那么,这应该有用吗?

c语言碰撞算法,c – 任意大小凸多边形之间碰撞检测的算法相关推荐

  1. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

    Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...

  2. 矩形换位算法C语言实现,关于C#:任意大小的矩形矩阵的运行时有效换位

    我迫切需要时间来优化大量的C代码以提高速度,我正在寻找一种算法-最好是C"代码段"-可以转换任意大小的矩形源矩阵u[r](行数,c列数)放入目标矩阵v▼显示[d](s = c行数, ...

  3. C语言求任意两个矩阵相乘的算法(初学尝试矩阵乘法)

    C语言求任意两个矩阵相乘的算法(不同于大部分规格固定的矩阵乘法) 结果图如下   : 代码如下: //----- 任意两个矩阵相乘 # include <stdio.h> int main ...

  4. C# 汉字字符取模韩语日语意大利语俄语法语西班牙兼并葡萄牙等 任意语言 任意大小 任意字体 任意排列 字符汉字取模及显示编码unicode

    视频演示:https://www.bilibili.com/video/BV1N54y117is/ 软件下载 功能:支持汉字.字符.韩语.日语.意大利语.俄语等任意语言,任意大小,任意字体,任意排列方 ...

  5. 算法经典“钓鱼”问题详解 基于贪心算法 C语言描述

    算法经典"钓鱼"问题详解 基于贪心算法 初始条件 在一条水平路边,有 n 2 ≤ n ≤ 25个钓鱼池,从左到右编号为1.2.3.--.n.小明有H1 ≤ H ≤ 16个小时的空余 ...

  6. Dijkstra算法指定任意两点距离(邻接矩阵法)

    Dijkstra算法指定任意两点距离(邻接矩阵法) "最短路算法"编程项目,指定两个结点,计算最短距离并输出该路径 >题目分析: 1.选择Python语言进行算法编程模拟. ...

  7. c语言编程图片识别条形码,基于Zbar的条形码图像识别算法的制作方法

    本发明涉及条形码识别技术领域,特别是涉及一种基于Zbar的条形码图像识别算法. 背景技术: 条形码是将宽度不等的多个黑条和空白,按一定的编码规则排列,用以表达一组信息的图形标识符.随着科技的迅速发展, ...

  8. 编c语言程序 任意输入一个长方体的长,宽,高,计算体积.,C语言程序,由键盘任意输入一个长方体的长.宽.高,计算体积....

    用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...

  9. c语言程序设计教程高佳琴主编答案,数据结构与算法应用教程.ppt

    <数据结构与算法应用教程.ppt>由会员分享,可在线阅读,更多相关<数据结构与算法应用教程.ppt(41页珍藏版)>请在人人文库网上搜索. 1.书名:数据结构与算法应用教程 I ...

  10. 灰狼算法 c语言 代码,基于灰狼优化的模糊C—均值聚类算法

    谢亮亮+刘建生+朱凡 摘要:针对模糊C-均值聚类算法(FCM)存在易受初始聚类中心影响和容易陷入局部最优的问题,提出了一种将灰狼优化算法(GWO)和模糊C-均值相结合的新聚类算法(GWO-FCM).该 ...

最新文章

  1. android jni 字符串拼接,AndroidJNI
  2. python中计数_Python中的统计计数
  3. 软考网络规划设计师论文考察要点
  4. mysql hicharts_PHP怎么调用Mysql的数据给Highcharts
  5. [递归]递归问题解题思路
  6. PAT乙级题目——1002写出这个数
  7. 接口测试实例(jmeter)
  8. spring源码分析第五天------springAOP核心原理及源码分析
  9. 【重点】LeetCode 24. Swap Nodes in Pairs
  10. 子框架页面链接改变(js方法)
  11. Tomcat安装及配置教程(超详细的图文教程)
  12. 信号跟单时提示mt4与服务器断开,MT4平台操作中遇到的一些常见问题和解决方法 -...
  13. Hadoop三大发行版本简单介绍
  14. java设置短信验证码过期时间_实现短信验证码有效时间
  15. python学习之心路历程
  16. 第一届中兴捧月算法大赛迪杰斯特拉派解决方案
  17. 低调,中国的FPGA到底有多强?
  18. 云计算机的一大特征是什么,云计算最大的特征是什么?
  19. STM32G0 按照8位16位的方式写入flash HAL库
  20. linux搭建 eth节点,Ethereum全节点搭建

热门文章

  1. 3G来了,我们能干点啥软件?(转)
  2. TF卡和SD卡的区别
  3. 2021年东南大学软件学院电子信息考研信息
  4. mysql语句alter table_sql语句中ALTER TABLE MODIFY和ALTER TABLE CHANGE的区别?
  5. 《你不可不知的50个建筑学知识》之哥特式建筑 1
  6. 微信小程序测试应该注意的事项
  7. 均线颜色怎么区分_均线入门:一图学会区分不同均线的颜色与炒股技巧
  8. 根据excel模板导出多sheet且生成条形码或二维码插入excel指定位置中
  9. Git重置登录密码问题,Git-remote Incorrect username or password ( access token )
  10. win7系统启动到一半停止_win7系统装到一半电脑死机怎么办