计算几何模版整理

来源:互联网 发布:黑帽seo技术网邀请码 编辑:程序博客网 时间:2024/05/17 02:25
////  main.cpp//  计算几何模版收集////  Created by 刘鑫伟 on 14/11/25.//  Copyright (c) 2014年 刘鑫伟. All rights reserved.///*struct point{    double x,y;}struct v{    point start,end;}//点积double dotProduct(v* v1,v* v2){    v vt1,vt2;    double result = 0;    vt1.start.x=0,vt1.start.y=0;    vt1.end.x=v1->end.x-v1->start.x,vt1.end.y=v1->end.y-v1->start.y;    vt2.start.x=0,vt2.start.y=0;    vt2.end.x=v2->end.x-v2->start.x,vt2.end.y=v2->end.y-v2->start.y;    result=vt1.end.x * vt2.end.x + vt1.end.y * vt2.end.y;    return result;}//叉积double crossProduct(v* v1,v* v2) {    v vt1,vt2;    double result = 0;    vt1.start.x=0,vt1.start.y=0;    vt1.end.x=v1->end.x-v1->start.x,vt1.end.y=v1->end.y-v1->start.y;    vt2.start.x=0,vt2.start.y=0;    vt2.end.x=v2->end.x-v2->start.x,vt2.end.y=v2->end.y-v2->start.y;    result=vt1.end.x * vt2.end.y - vt1.end.y * vt2.end.x;    return result; } //判断点是否在线段上 bool onSegment(point Pi,point Pj,point Q) {    if((Q.x-Pi.x)*(Pj.y-Pi.y)==(Pj.x-Pi.x)*(Q.y-Pi.y)&&min(Pi.x,Pj.x)<=Q.x&&Q.x<=max(Pi.x,Pj.x)&&min(Pi.y,Pj.y)<=Q.y&&Q.y<=max(Pi.y,Pj.y))    {        return ture;    }    else return false; } //判断点p是否在三角形abc内 Spab+Spac+Spbc=Sabc Spab=1/2*crossProduct(ap,bp);   */

0 0
原创粉丝点击