51Nod - 1265 四点共面 (叉积判断)
2017-07-12 21:15
393 查看
思路:
a[1] a[2] a[3] a[4] 为四个点。a1a2和a1a3所构成的面的法向量:point fa = ( a[2] - a[1] ) x ( a[3] - a[1] );
注意在通过三阶矩阵算法向量的时候,j的前边要乘一个负号。。我就是好久没学线代把矩阵的解法都忘了。。
#include <iostream> #include <cmath> #include <cstdio> #include <string.h> #include <algorithm> #define pi acos(-1) #define eps 1e-6 typedef long long int lli; using namespace std; struct point{ lli x,y,z; point(){} point(lli xx,lli yy,lli zz){x=xx,y=yy,z=zz;} point operator * (point t){ return point(y*t.z-t.y*z,-x*t.z+t.x*z,x*t.y-y*t.x); } point operator - (point t){ return point(x-t.x,y-t.y,z-t.z); } }a[20]; lli dot(point a,point b){ return a.x*b.x+a.y*b.y+a.z*b.z; } bool gongmian(){ point fa = (a[2]-a[1])*(a[3]-a[1]); if(dot(fa,a[4]-a[1]) == 0) return true; return false; } int main(){ int t;cin>>t; while(t--){ for(int i = 1;i <= 4;i++){ scanf("%lld%lld%lld",&a[i].x,&a[i].y,&a[i].z); } if(gongmian() == 4000 false){ printf("No\n");continue; } puts("Yes"); } return 0; }
相关文章推荐
- 51nod--1265 四点共面 (计算几何基础, 点积, 叉积)
- [51NOD] 1265 四点共面 [数学&向量叉积]
- 51nod 1265 四点共面 (水题)
- 51NOD 1265 四点共面 【简单几何分析】
- 51nod:1265 四点共面(数学)
- 51Nod 1265 四点共面
- 51Nod 1265:四点共面(计算几何)
- 51nod 1265 四点共面(结论)
- 51nod 1265 四点共面(计算几何)
- 51nod 1265 四点共面
- 51Nod 1265 四点共面
- 【51Nod】1265 - 四点共面(行列式 & 数论)
- 51Nod:1265 四点共面
- 51nod 1265 四点共面
- [51nod]1265 四点共面
- 51NOD 1265 四点共面(计算几何)
- 51nod 1265 四点共面
- 51Nod 1265 四点共面
- 51nod 1265 四点共面
- 51nod_1265 四点共面