圆与线段碰撞检测
来源:互联网 发布:淘宝店铺注册流程 编辑:程序博客网 时间:2024/03/29 02:23
圆与线段的碰撞检测算法利用了一个向量在另一个向量的投影的原理。
假设向量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入门】碰撞检测与触发检测
- 简单前端——圆与圆碰撞检测
- 简单前端——圆与圆碰撞检测
- 圆与未旋转矩形的碰撞检测(上篇)
- 第五章第六节-装配集合
- solr-5.4.1部署到Tomcat
- 缓存
- 蜂鸣器 PWM
- Java虚假机jvm关于内存的设置与调优
- 圆与线段碰撞检测
- BZOJ_P1968 [AHOI2005]COMMON 约数研究(数论)
- java常用算法之逆波兰表达式(Evaluate Reverse Polish Notation)
- win7禁止安装
- illegal access to loading collection
- Android之TypedArray 为什么需要调用recycle()
- LruCache 缓存
- LeetCode 238. Product of Array Except Self
- 阿拉伯数字转化人民币读法