算出从同一个点出发的三个向量,如果这三个向量的x,y,z值所构成的行列式结果为零,则这四个点在同一平面上,否则不同一平面
如A,B,C,D四点
三个向量AB(x2-x1,y2-y1,z2-z1),AC(x3-x1,y3-y1,z3-z1),AD(x4-x1,y4-y1,z4-z1)(是向量,BA,AB是不同向量)
V=|[AB AC AD]|(混合积)
V= |x2-x1 y2-y1 z2-z1|
|x3-x1 y3-y1 z3-z1|
|x4-x1 y4-y1 z4-z1|
如果V=0,则四点共面
如果V!=0,则四点不同在一平面

#include<iostream>
#include<math.h>
#include<cmath>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
class Point
{public:int x, y, z;Point(int a, int b, int c){x = a;y = b;z = c;}
};
class isFlat
{public:int x, y, z;isFlat(int a, int b, int c){x = a;y = b;z = c;}int cul(isFlat& v2, isFlat& v3){return(x * (v2.y) * (v3.z) + (v2.x) * (v3.y) * z + y * (v2.z) * (v3.x) - z * (v2.y) * (v3.x) - x * (v2.z) * (v3.y) - y * (v2.x) * (v3.z));}
};
int main()
{int n;cin >> n;while (n--){int x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4;cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2 >> x3 >> y3 >> z3 >> x4 >> y4 >> z4;Point p1(x1, y1, z1), p2(x2, y2, z2), p3(x3, y3, z3), p4(x4, y4, z4);//记录四个点isFlat v1(x2 - x1, y2 - y1, z2 - z1), v2(x3 - x1, y3 - y1, z3 - z1), v3(x4 - x1, y4 - y1, z4 - z1);//由同一点出发的三个向量int result = v1.cul(v2, v3);//行列式结果if (result == 0){cout << "Yes" << endl;}else{cout << "No" << endl;}}return 0;
}

判断四个点是否在同一个平面上相关推荐

  1. 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...

    一.什么是子网掩码? 在了解ip地址的网段之前,我们先来了解子网掩码,很多对网络了解不深的朋友都对子网掩码有些迷惑, 不了解它是用来干什么的? 子网掩码不能单独存在,它必须结合IP地址一起使用.子网掩 ...

  2. c语言长和宽判断是否是正方形,C++ 如何判断四个点是否构成正方形

    判断方法分为两步: 1.判断四条边是否相等: 2.判断是否有一个角为直角: 求解两点之前距离的函数: double Distance(int x1,int y1,int x2,int y2){ ret ...

  3. 判断四个点是不是组成正方形

    判断四个点是不是组成正方形 给出几组数,每组的第一行为横坐标,第二行为纵坐标.看其是否组成正方形 代码 #coding=utf-8 import sys if __name__ == "__ ...

  4. C++判断四个点能否构成正方形

    参考博客https://blog.csdn.net/yangkunpengD/article/details/51329115 对其进行了修改,思路大致一样. 判断方法:三个条件同时满足(1:四条边相 ...

  5. DB2数据库 SQL语句判断两个日期 是否属于同一个季度

    根据字段dsdate选择月份,以下语句可以判断一个月份的季度, SQL语句为: CASE WHEN SUBSTR(dsdate,6,2) BETWEEN 1 AND 3 THEN 1WHEN SUBS ...

  6. C语言算2个坐标点之间的距离,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...

    #include #include #include char explode( char * str , char symbol ); double distance ( int x1 , int ...

  7. 圆与平面的接触面积_如果一个绝对的圆放在绝对的平面上,接触面是不是无限小?...

    这种问题其实并不难解答:如果你真的能找到一个绝对的圆还有一个绝对平的平面上,并且保证放上去之后圆和平面不会有任何变化,那么接触面就可以是无限小! 如果不能,很抱歉,接触面很显然就不会是无限小! 那么你 ...

  8. 平面上N个点,求斜率最大的那条直线通过的两点

    平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑).时间效率越高越好. 关于这道题,网上已经给出了解答要点: 3个点A,B,C,把它们的按x坐标排序. ...

  9. 平面上N个点求斜率最大的两个点

    平面上N个点求斜率最大两个点 1.根据X将N个点排序 2.最大的斜率为max(p[i], p[i+1]) 可以证明如果有ABC三个点则AB与BC的斜率一个大于AC另一个则小于AC, k3 = (c - ...

  10. 复平面上gamma函数_神奇的Gamma函数 (中)

    Gamma 函数欣赏 Each generation has found something of interest to say about the gamma function. Perhaps ...

最新文章

  1. 让自己的开源项目支持CocoaPods集成
  2. java项目怎样提高性能_从代码的角度谈如何优化JAVA代码以提高性能【初、中级程序员必看】...
  3. htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容
  4. centos 启动一个redis_基于prometheus+grafana体系监控redis缓存服务
  5. Lua语言模型 与 Redis应用
  6. python如何对文件进行批量命名-利用Python对文件批量重命名
  7. linux gpio管脚功能配置API
  8. bigsur cdr文件_clover和oc的杂交-openclover,big sur也可以直接用clover来引导了,小白一步一步教你...
  9. vmware服务器文件备份,三种VMware数据备份和恢复方法
  10. 【MySQL】MySQL复制技术
  11. lisp画弯箭头_在CAD中直接用命令画箭头
  12. 使用Python计算身份证号码最后检验位
  13. 学习总结-《父与子的编程之旅》chapter 6
  14. 计算机专业班级工作计划,网络计算机班班主任工作计划
  15. vscode 单击跳转_vscode中ctrl+鼠标左键不能跳转
  16. RIA E100 操作方式
  17. 将代码保留原格式(高亮)复制到word
  18. 读浅墨博客 十二 笔记
  19. Vitamix 5200和BlendTec等三个品牌评测
  20. ZMY_HTttpUtils获取网络信息

热门文章

  1. 移动硬盘RAW格式,无法识别读取
  2. CTO(技术总监)平时都在做些什么?
  3. 京东放大镜效果的实现
  4. html简单特效代码,html特效代码大全
  5. (本人亲测有效)华为magicbook 16SE笔记本电脑重装系统过程
  6. 企业微信hook接口,pc企业微信协议
  7. express基本使用步骤
  8. 电子邮件群发软件哪种好 电子邮件群发软件怎么用
  9. 人艰不拆,一句话毁掉小清新!
  10. PS怎么把图片处理的更清晰