圆与线段碰撞检测
来源:互联网 发布:matlab分水岭算法 编辑:程序博客网 时间:2024/03/29 08:13
圆与线段的碰撞检测算法利用了一个向量在另一个向量的投影的原理。
假设向量p1p为v1, 向量p1p2为v2,p0为v1在v2上的投影点,则p1p0为v1在v2上的投影。
两个向量点乘v1.dot(v2) = v1.length() * v2.length() * cos(theta) = x1 * x2 + y1 * y2,当v2经过单位化后,点乘的结果就变成的投影向量p1p0的长度,设为u。
当p位于p1左侧时,theta角度大于90度,cos值为负,所以u <= 0;当p位于p2右侧时,u >= v2.length()。
依此可以算出到圆心p到线段上距离最近的点,如果到该点距离小于圆半径r,则圆与线段相交。
圆与线段碰撞检测的算法实现:
0 0
- 圆与线段碰撞检测
- 圆与线段碰撞检测
- 圆、矩形、线段碰撞检测
- android 线段与矩形碰撞检测
- 圆与矩形碰撞检测
- 圆与三角形碰撞检测
- 圆与扇形碰撞检测
- 矩形与圆碰撞检测
- 圆与矩形简单碰撞检测
- 圆与旋转矩形的碰撞检测
- 碰撞检测与触发检测
- 圆,矩形碰撞检测
- 碰撞检测与模型运动
- 七、数据管理与碰撞检测
- 【Unity入门】碰撞检测与触发检测
- 简单前端——圆与圆碰撞检测
- 简单前端——圆与圆碰撞检测
- 圆与未旋转矩形的碰撞检测(上篇)
- 0..0
- POJ1064 Cable master
- Doing Homework again --贪心
- C++连接Access数据库
- IE 高级设置里面一片空白,没有任何选项
- 圆与线段碰撞检测
- C++ 面向对象 继承与派生
- 变量和基本类型
- class_create & class_device_create
- 从一关联到多的查询和从多关联到一的查询来简单说说关联查询
- Linux命令简介(文件内容操作命令、归档和压缩操作命令)
- 百度暑期实习二面&三面
- 还是上次的oracle迁移到mysql的遗留问题
- grep 命令使用 -rin