#include#include struct pt { float x,y; }; struct quat { pt points[4]; }; float crossmulti2d( float x1, float y1, float x2, float y2) { return x1 * y2 - x2 * y1; } bool inquat( quat _q, pt _pt) { pt vec1, vec2; vec1.x = _q.points[1].x - _q.points[0].x; vec1.y = _q.points[1].y - _q.points[0].y; vec2.x = _pt.x - _q.points[0].x; vec2.y = _pt.y - _q.points[0].y; if( crossmulti2d( vec2.x, vec2.y, vec1.x, vec1.y ) < 0 ) { return false; } vec1.x = _q.points[2].x - _q.points[1].x; vec1.y = _q.points[2].y - _q.points[1].y; vec2.x = _pt.x - _q.points[1].x; vec2.y = _pt.y - _q.points[1].y; if( crossmulti2d(vec2.x, vec2.y, vec1.x, vec1.y) < 0 ) { return false; } vec1.x = _q.points[3].x - _q.points[2].x; vec1.y = _q.points[3].y - _q.points[2].y; vec2.x = _pt.x - _q.points[2].x; vec2.y = _pt.y - _q.points[2].y; if( crossmulti2d(vec2.x, vec2.y, vec1.x, vec1.y) < 0 ) { return false; } vec1.x = _q.points[0].x - _q.points[3].x; vec1.y = _q.points[0].y - _q.points[3].y; vec2.x = _pt.x - _q.points[3].x; vec2.y = _pt.y - _q.points[3].y; if( crossmulti2d(vec2.x, vec2.y, vec1.x, vec1.y ) < 0 ) { return false; } return true; } int main() { quat shape = { { {1, 1},{2, 1}, {1, 0},{0, 0} } }; pt tests[] = { {0.0, 1.0}, {1.0, 0.5}, {1.5, 0}, {1.5, 0.5}, {1.5, 0.52}, {1.5, 0.49} }; for(int i =0; i 成都创新互联专注于企业全网整合营销推广、网站重做改版、兴宁网站定制设计、自适应品牌网站建设、HTML5、成都做商城网站、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为兴宁等各大城市提供网站开发制作服务。 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页名称:判断点在凸四边形内-创新互联
分享地址:http://jkwzsj.com/article/ccdhgi.html