首页 | 本学科首页   官方微博 | 高级检索  
     

基于启发式搜索分离向量的凸多面体碰撞检测
引用本文:李学庆,孟祥旭,汪嘉业,王文平,CHUNG Kelvin,YIU Siu Ming.基于启发式搜索分离向量的凸多面体碰撞检测[J].计算机学报,2003,26(7):837-847.
作者姓名:李学庆  孟祥旭  汪嘉业  王文平  CHUNG Kelvin  YIU Siu Ming
作者单位:1. 山东大学计算机科学与技术学院,济南,250100
2. 香港大学计算机科学与资讯系统系,香港
基金项目:国家自然科学基金 ( 69873 0 2 8),高等学校优秀青年教学科研奖励计划
摘    要:碰撞检测是计算机模拟物理过程的基础,在计算机图形学、CAD/CAM、虚拟现实和机器人等领域有着广泛的应用.该文给出了一个新的用于凸多面体碰撞检测的算法——HP-jump.HP-jump建立了一个有效的碰撞检测模型用于报告物体的碰撞,同时提供了一个快速的启发式的策略用于搜索两个凸多面体的分离向量.该算法是利用凸多面体的层次表示来搜索支撑顶点对,用平衡二叉树来记录球面凸多边形的顶点,同时还利用了时间、空间相关性,这些都加速了算法的执行.该文的最后给出了HP-jump与GJK,I-COLLIDE算法的比较.

关 键 词:计算机图形学  启发式搜索算法  凸多面体  碰撞检测  计算几何

Detecting Collision of Polytopes Using a Heuristic Search for Separating Vectors
CHUNG Kelvin,YIU Siu Ming.Detecting Collision of Polytopes Using a Heuristic Search for Separating Vectors[J].Chinese Journal of Computers,2003,26(7):837-847.
Authors:CHUNG Kelvin  YIU Siu Ming
Abstract:The collision detection problem is to determine whether two moving objects collide or not at any moment. It is fundamental to computer simulation of a physical environment, and has applications in computer graphics, CAD/CAM, virtual reality, and robotics. This paper proposes a new method, called HS-jump, for collision detection for polytopes. HS-jump combines an efficient scheme to report collision for two colliding polytopes and a fast heuristic strategy to search for a separating vector of two separated polytopes. A separating vector is the normal vector of a separating plane of two disjoint polytopes. Suppose an ordered pair (p,q) is a supporting vertex pair of two polytopes P and Q with respect to a vector S, if it satisfies the separating condition S*(q-p)>0, then P and Q do not collide and S is called a separating vector. The algorithm firstly sets a nonzero vector as the candidate separating vector S and computes the supporting vertex pair (p,q). If the separating condition is satisfied, then P and Q are disjoint and the algorithm terminates. Otherwise the new candidate separating vector S is obtained using the heuristic formula Si+1=Si-2(Si*ri)ri, where ri=(qi-pi)/(qi-pi). This step is repeated until the algorithm finds the vector S which satisfies the separating condition or reports that P and Q collide by noting that the spherical convex polygon formed from the supporting vertex pairs is empty. To speed up the implementation of the algorithm, the hierarchical representation of a polytope is used to compute the supporting vertex pair, and a balanced binary tree is used to store the vertices of the spherical convex polygon, and between-frame coherence is exploited . Due to the particular nature of the search scheme used, HS-jump becomes more efficient when the convex polyhedra are more spherically shaped. Hence, in the case of applying HS-jump to convex polyhedra with a large number of vertices, HS-jump delivers the maximum efficiency if the objects are on average not very elongated.
Keywords:computational geometry  computer graphics  virtual reality  collision detection
本文献已被 CNKI 维普 万方数据 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号