Java语言: Codee#16213

01 import java.io.*;

02 import java.util.*;

03 import java.math.*;

04 import java.text.*;

05 //给定四面体4个点,求体积

06 //学习了解了数量积(点积or内积)写作(a,b)运算结果为数字

07 //向量积(叉积or外积)写作[a,b]运算结果为向量

08 //那么混合积为定义三个向量AB,AC,AD,则其混合积为([AB,AC],AD)(这里A,B,C,D是四面体4个点)

09 //其绝对值除6就是四面体体积

10 //(ab与ac的叉积 点积上 ad)是体积的6倍

11 //(ab与ac的叉积的模)是面积的两倍

12 //有个PPT讲解的很不错,有助于了解混合积数学及物理含义

13 //http://wlkc.zzuli.edu.cn/kejianweb/xiandai/2/2-3.ppt

14 public class Main {

15 final static int maxn=4;

16 public static class Point{

17 double x,y,z;

18

19 Point(){};

20 Point(double xx,double yy,double zz){

21 x=xx;y=yy;z=zz;

22 }

23 void out(){

24 System.out.println(x+" "+y+" "+z);

25 }

26

27 };

28

29 public static double Dot(Point p,Point a,Point b){

30 return(a.x-p.x)*(b.x-p.x)+(a.y-p.y)*(b.y-p.y);

31 }//pa与pb的点积 (2维)

32

33 public static double Cross(Point p,Point a,Point b){

34 return (a.y-p.y)*(b.x-p.x)-(a.x-p.x)*(b.y-p.y);

35 }//pa与pb的叉积(2维)

36

37 public static double Cross(Point a,Point b){

38 return a.y*b.x-a.x*b.y;

39 }//向量a与b的叉积(2维)

40

41 public static double Dot(Point a,Point b){

42 return a.x*b.x+a.y*b.y;

43 }//向量a和b的点积(2维)

44

45

46

47 public static double ThreeDot(Point p,Point a,Point b){

48 return(a.x-p.x)*(b.x-p.x)+(a.y-p.y)*(b.y-p.y)+(a.z-p.z)*(b.z-p.z);

49 }//pa与pb的点积 (3维)

50

51

52 public static Point ThreeCross(Point p,Point a,Point b){

53 Point C=new Point();

54 C.x=(a.y-p.y)*(b.z-p.z)-(a.z-p.z)*(b.y-p.y);

55 C.y=(a.z-p.z)*(b.x-p.x)-(a.x-p.x)*(b.z-p.z);

56 C.z=(a.x-p.x)*(b.y-p.y)-(a.y-p.y)*(b.x-p.x);

57 return C;

58 }//pa与pb的叉积(3维)

59

60 public static double ThreeDot(Point a,Point b){

61 return a.x*b.x+a.y*b.y+a.z*b.z;

62 }//向量a与b的点积 (3维)

63

64 public static Point ThreeCross(Point a,Point b){

65 Point C=new Point();

66 C.x=a.y*b.z-a.z*b.y;

67 C.y=a.z*b.x-a.x*b.z;

68 C.z=a.x*b.y-a.y*b.x;

69 return C;

70 }//向量a与b的叉积(3维)

71

72 public static double TetrahedronArea(Point a,Point b,Point c,Point d){

73 double ans=Math.abs(ThreeDot(ThreeCross(a,b,c),

74 new Point(d.x-a.x,d.y-a.y,d.z-a.z)))/6;

75 return ans;

76 }

77

78 public static Point p[]=new Point[maxn];

79

80 public static void main(String args[]){

81 Scanner in=new Scanner(System.in);

82

83 int test=in.nextInt();

84 for(int caseid=1;caseid<=test;caseid++){

85 for(int i=0;i

86 double x=in.nextDouble();

87 double y=in.nextDouble();

88 double z=in.nextDouble();

89 p[i]=new Point(x,y,z);

90 }

91

92

93 DecimalFormat g=new DecimalFormat("0.000");

94 System.out.println("Case #"+caseid+": "+

95 g.format(TetrahedronArea(p[0],p[1],p[2],p[3])));

96 }

97 }

98 }

标签:

坐标求四面体体积_给定4个点坐标求四面体体积相关推荐

  1. 次坐标从0开始_全站仪使用方法及坐标计算讲解

    大家都知道随着建筑工程和仪器设备的发展,全站仪现已替代了经纬仪广泛应用于建筑工程中. 为了更好的掌握测量放线知识,今天对全站仪的使用和坐标计算和大家相互交流学习一下. 全站仪常规注意事项 在使用本仪器 ...

  2. Python(分治算法)问题 F: 求逆序对_给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目。

    问题 F: 求逆序对 题目描述 给定一个序列a1,a2,-,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目. 注意:n<=10^5,ai<=10^5 ...

  3. python编程求长方体体积_编写基于对象的程序求3个长方体的体积

    /* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: volume.cpp * 作者:孙锐 ...

  4. java求外接圆圆心_由三点三维坐标计算圆半径和圆心位置

    [实例简介] 通过输入任意三点空间坐标自动判断三点是否在一条直线上,若不在则求三点外接圆的圆心位置和半径,计算精度可调节.解决了"知三点求圆心半径"程序对于某些点无法计算的缺陷. ...

  5. c语言求圆锥的表面积和体积_用C语言 编辑一个求圆锥体表面积与体积的代码...

    满意答案 我来回答#include #include #define N 3.1415 using namespace std; class Height { private: float h; pu ...

  6. php要求输入是个数求平均值、_【227期】EXCEL求平均值的各种套路汇聚合,最后难倒70%的人...

    前言:在我们日常办公中,经常会发生这样的事件,一个相对简单的问题,折磨了自己好久,可能要几个加班,才能得到有效可行的解决方式,但是,换一个人,可能就是豆芽菜,很容易解决.本期案例分基础篇和提高篇,本期 ...

  7. c# 计算圆锥的体积_用C#如何编写程序计算球,圆柱和圆锥的表面积和体积? 用C#编写方法并通过方法...

    //球体表面积A=4π*R^2,体积V=4/3π*R^3 Console.WriteLine("请输入圆的半径R"); double R=Convert.ToInt32(Conso ...

  8. java 三维数组长方体求体积_已知任意一个四面体的六条棱长,如何求出其体积?...

    如果现在有一个任意形状的四面体,我们只知道它的六条棱长,那我们该如何确定它的体积呢?这就是著名的 四面体问题了,在解决这个问题之前,我们先来学习一点预备知识. 棱锥的体积 由于正四面体是一个棱锥,所以 ...

  9. 给定两个数组arrx和arry,长度都为N。代表二维平面上有N个点,第i个点的x 坐标和y坐标分别为arrx[i]和arry[i],返回求一条直线最多能穿过多少个点?

    问题描述: 给定两个数组arrx和arry,长度都为N.代表二维平面上有N个点,第i个点的x 坐标和y坐标分别为arrx[i]和arry[i],返回求一条直线最多能穿过多少个点? 思想 坐标系中两个点 ...

  10. python求圆柱体的体积_漫谈超球体的体积公式

    现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的.本篇将带你走进高维度球的表面积和体积公式[1]. 我们生活在三维空间,对更高维度的空间难以构想.笛卡尔 ...

最新文章

  1. 矩阵快速幂+构造方法
  2. 服务器端往手机端推送数据的问题(手机解决方案)
  3. 强大自己,从学习开始!2020年最有内容的订阅号,每一个都是万里挑一!
  4. SQL Server 2008用'sa'登录失败,启用'sa'登录的办法
  5. lua require dofile loadfile区别
  6. 面向任务的 Git 学习法
  7. java邻接表无向图的创建_邻接表无向图(三) 之Java详解
  8. MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】
  9. pytorch教程龙曲良31-35
  10. Android使用READ_CONTACTS读取手机联系人
  11. 模块ntdll中出现异常eaccessviolation_python常用模块
  12. 6 PP配置-生产主数据-工作中心相关-工作中心标准值参数
  13. Java并发编程-线程池底层工作原理
  14. 决策树(五)--OpenCV决策树
  15. memcached 远程拒绝服务漏洞
  16. 计算机关机后风扇还转,电脑关机后cpu风扇还在转怎么办?解决电脑关机后cpu散热器还在转...
  17. 荣耀magicbook15C语言,荣耀 MagicBook 15评测 聊聊目前性价比最高的大屏轻薄本
  18. 内容安全策略(content-security-policy)
  19. 职场感悟.Video.人生各自精彩,谁说人生是一场马拉松的?
  20. vtk 中vtkMapper的各函数解析

热门文章

  1. 为什么闹钟设置了却不响_苹果手机为什么闹钟设置了却不响
  2. (阿里云笔记)购置域名+云解析DNS域名
  3. win7 增加Internet时间服务器
  4. html5好看的颜色代码,css好看的颜色配色.html
  5. 浅谈北美油气行业1--加拿大
  6. OMNeT 例程 Tictoc15 和 Tictoc16 矢量和标量统计详解
  7. Fisher精确检验的通俗理解
  8. 企业高薪招人,近5成岗位月薪过万
  9. 《SEM长尾搜索营销策略解密》一一1.3 别只守着核心词,还有更多风景
  10. 二叉树模型matlab实现,利用Matlab实现二叉树的树形显示