• 1265 四点共面


    1265 四点共面

     
    给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面)。如果共面,输出"Yes",否则输出"No"。
     

    输入

    第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)
    第2 - 4T + 1行:每行4行表示一组数据,每行3个数,x, y, z, 表示该点的位置坐标(-1000 <= x, y, z <= 1000)。

    输出

    输出共T行,如果共面输出"Yes",否则输出"No"。

    输入样例

    1
    1 2 0
    2 3 0
    4 0 0
    0 0 0

    输出样例

    Yes

    先建立一个面,然后判断两一个点是否在该平面上.
     1 #include <iostream>
     2 using namespace std;
     3 
     4 struct Node{
     5     double x, y, z;
     6 }xn[5];
     7 int t;
     8 double A, B, C, D; 
     9 
    10 void ptofdist(){ //点是否在面上
    11     A = ((xn[2].y-xn[1].y)*(xn[3].z-xn[1].z)-(xn[2].z-xn[1].z)*(xn[3].y-xn[1].y));
    12     B = ((xn[2].z-xn[1].z)*(xn[3].x-xn[1].x)-(xn[2].x-xn[1].x)*(xn[3].z-xn[1].z));
    13     C = ((xn[2].x-xn[1].x)*(xn[3].y-xn[1].y)-(xn[2].y-xn[1].y)*(xn[3].x-xn[1].x));
    14     D = -(A * xn[1].x + B * xn[1].y + C * xn[1].z);
    15 }
    16 
    17 int main(){
    18     cin>>t;
    19     while(t--){
    20         for(int i = 1; i <= 4; i++){
    21             cin>>xn[i].x>>xn[i].y>>xn[i].z;
    22         }
    23         ptofdist();
    24         double ret = A*xn[4].x+B*xn[4].y+xn[4].z*C+D;
    25         if(ret == 0){
    26             puts("Yes");
    27         }else{
    28             puts("No");
    29         }
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    VellCar(我的钢管车)
    我的留言发送提醒界面
    PHP邮箱验证是否有效
    PHP字符串操作常用函数
    让php永远后台运行
    找到的两个php爬虫,分享一下
    全国DNS服务器IP地址【电信、网通、铁通】
    我的新顶级域名vell001.ml
    PHP使用SwiftMailer发送邮件
    6个WordPress备份插件
  • 原文地址:https://www.cnblogs.com/zllwxm123/p/9924545.html
Copyright © 2020-2023  润新知