首页 > 编程知识 正文

已知两点求平面法向量,平面向量求证三点共线

时间:2023-05-05 11:01:18 阅读:272763 作者:1088

//根据3点坐标求平面的单位法向量(原点指向平面)

void Use3PointsComputeNormalVector(vector<float> p1, vector<float> p2, vector<float> p3,vector<float> &NormalVector){ //a = y1z2−y2z1 //b = z1x2−z2x1 //c = x1y2−x2y1 float x1 = p2[0]-p1[0]; float y1 =p2[1]-p1[1]; float z1 =p2[2]-p1[2]; float x2 = p3[0] - p1[0]; float y2 = p3[1] - p1[1]; float z2 = p3[2] - p1[2]; float a = y1*z2-y2*z1; float b = z1*x2-z2*x1; float c = x1*y2-x2*y1; //保证深度方向向外 if (c < 0) { a = -a; b = -b; c = -c; } //归一化 float length = sqrt(a*a + b*b + c*c); a = a / length; b = b / length; c = c / length; NormalVector.push_back(a); NormalVector.push_back(b); NormalVector.push_back(c);}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。