算法题,已知某点的坐标和平行四边形的四个点,求点是否在平行四边形内,用算法如何实现?
平面上点在任意多边形内部的计算方法,就是从点所在位置做一个水平或者垂直的射线
计算它和多边形的交点,奇数在内,偶数在外
对于特殊的四边形或者需要精确知道点和多边形之间关系的,有其他的办法
对于楼主的平行四边形的特例,可以使用仿射坐标分解的办法,这个方法在三维系统当中经常被用于碰撞检测里面射线和三角形相交的检测
把点按照平行四边形的两个相邻边分解,得到仿射坐标(u,v)
如果 0<=u<=1 并且 0<=v<= 1 则表示点在平行四边形内部,否则在外
如果加上 u+v<=1 则可以盘点,点是否在相邻的两个边组成的三角形内, 这个就是常用的点在三角形内部的算法
百度淘米2016校招笔试题...我做过的也做对了...