//判断测试点是否在三角形内
staticboolinsideTriangle(intx,inty,constVector3f*_v){// TODO : Implement this function to check if the point (x, y) is inside
// the triangle represented by _v[0], _v[1], _v[2]
//测试点的坐标为(x, y)
//三角形三点的坐标分别为_v[0], _v[1], _v[2]
//叉乘公式为(x1, y1)X(x2, y2) = x1*y2 - y1*x2
//准备三角形各边的的向量
Eigen::Vector2fside1;side1<-_v[1].x()-_v[0].x(),_v[1].y()-_v[0].y();Eigen::Vector2fside2;side2<-_v[2].x()-_v[1].x(),_v[2].y()-_v[1].y();Eigen::Vector2fside3;side3<-_v[0].x()-_v[2].x(),_v[0].y()-_v[2].y();//计算测量点和三角形各点连线的向量
Eigen::Vector2fv1;v1<-x-_v[0].x(),y-_v[0].y();Eigen::Vector2fv2;v2<-x-_v[1].x(),y-_v[1].y();Eigen::Vector2fv3;v3<-x-_v[2].x(),y-_v[2].y();//三角形各边的的向量叉乘测量点和三角形各点连线的向量
floatz1=side1.x()*v1.y()-side1.y()*v1.x();floatz2=side2.x()*v2.y()-side2.y()*v2.x();floatz3=side3.x()*v3.y()-side3.y()*v3.x();//判断叉乘结果是否有相同的符号
if((z1>0&&z2>0&&z3>0)||(z1<0&&z2<0&&z3<0)){returntrue;}else{returnfalse;}}