C++:使用类方法根据四点计算四面体体积

article/2025/1/16 20:10:02

一个四面体有四个点,分别为a = (x1, y1, z1), b = (x2, y2, z2), c = (x3, y3, z3), 以及d = (x4, y4, z4),计算该四面体的体积。

(1)四面体计算公式         v = \frac{\left |(a-d)\cdot ((b-d)\times (c-d)) \right |}{6}

(2)三维空间的两点的点乘         a\cdot b = x1*x2 + y1*y2 + z1*z2

(3)三维空间的两点的叉乘         a\times b = (y1*z2-z1*y2, z1*x2-x1*z2, x1*y2-y1*x2)

方法一:定义一个Point类计算

先定义一个Point类来放点坐标,接着定义一个函数使用Point类型的对象作为参数传入,直接计算体积。

#include <iostream>
#include <math.h>using namespace std;// define a point class to store a point
class Point
{
public:double x;double y;double z;Point(double x, double y, double z);
};
// constructor
Point::Point(double x, double y, double z)
{this->x = x;this->y = y;this->z = z;
}// the function based on the given equation
double cal_volume(Point a, Point b, Point c, Point d)
{// a-dPoint p_ad(a.x-d.x, a.y-d.y, a.z-d.z);// b-dPoint p_bd(b.x-d.x, b.y- d.y, b.z-d.z);// c-dPoint p_cd(c.x-d.x, c.y-d.y, c.z-d.z);// (b-d)x(c-d)Point p_bd_cd(p_bd.y * p_cd.z - p_bd.z * p_cd.y, p_bd.z * p_cd.x - p_bd.x * p_cd.z, p_bd.x * p_cd.y - p_bd.y * p_cd.x);// final resultdouble res = abs(p_ad.x * p_bd_cd.x + p_ad.y * p_bd_cd.y + p_ad.z * p_bd_cd.z) / 6.0;return res;
}int main()
{// testPoint p1(0, 0, 0);Point p2(2, 0, 0);Point p3(0, 2, 0);Point p4(1, 1, 1);double v = cal_volume(p1, p2, p3, p4);cout << v << endl;
}

方法二:定义一个四面体类(tetrahedron),类方法计算

在Point类的基础上,再定义一个tetrahedron类(这个类拥有一个指向Point类型对象的指针,以及指针长度:此处为四面体,有四个点默认为四)。然后通过tetrahedron类对象计算体积,此处的计算体积方法是tetrahedron类的成员函数。

#include <iostream>
#include <vector>
using namespace std;class Point
{
public:double x;double y;double z;Point(double x, double y, double z);
};
// constructor
Point::Point(double x, double y, double z)
{this->x = x;this->y = y;this->z = z;
}class  tetrahedron
{
public:tetrahedron(Point *p, int num);double cal_volume();int num_p;Point *p;
};
// constructor
tetrahedron::tetrahedron(Point *tp, int num):num_p(num)
{for(int i = 0; i < this->num_p; i++){this->p[i] = Point(tp[i].x, tp[i].y, tp[i].z);}
}
// function to calculate volume
double  tetrahedron::cal_volume()
{Point p_ad(p[0].x-p[3].x, p[0].y-p[3].y, p[0].z-p[3].z);Point p_bd(p[1].x-p[3].x, p[1].y- p[3].y, p[1].z-p[3].z);Point p_cd(p[2].x-p[3].x, p[2].y-p[3].y, p[2].z-p[3].z);Point p_bd_cd(p_bd.y * p_cd.z - p_bd.z * p_cd.y, p_bd.z * p_cd.x - p_bd.x * p_cd.z, p_bd.x * p_cd.y - p_bd.y * p_cd.x);double res = abs(p_ad.x * p_bd_cd.x + p_ad.y * p_bd_cd.y + p_ad.z * p_bd_cd.z) / 6.0;return res;
}
int main()
{// testPoint p1(0, 0, 0);Point p2(2, 0, 0);Point p3(0, 2, 0);Point p4(1, 1, 1);Point *p = new Point(0, 0, 0);p[0]=p1;p[1]=p2;p[2]=p3;p[3]=p4;tetrahedron t(p, 4);double res = t.cal_volume();cout << res << endl;}

 

 


http://chatgpt.dhexx.cn/article/PeyCjxQd.shtml

相关文章

【HDU1411】四面体的体积公式

1.题目链接。题目大意&#xff1a;就是给出一个四面体的六条边&#xff0c;求出这个四面体的体积。 2.这个&#xff0c;如果知道坐标是很好解决的&#xff0c;假设我们知道的是坐标&#xff1a; 体积就是混合积的六分之一。&#xff08;什么&#xff1f;x,y,z是啥&#xff1f;…

tomcat7安装版的详细步骤

如图&#xff1a;直接双击tomcat安装包进入安装流程。 出现安装界面&#xff0c;点击“next”下一步继续。 在这个界面点击i aggress &#xff0c;“我同意”继续下一步。 当出现这个界面的时候&#xff0c;不要做任何修改&#xff0c;直接点击下一步继续。 在这个界面…

tomcat7.0安装及配置教程(win10)

一、前言 Tomcat 服务器是一个开源的轻量级Web应用服务器&#xff0c;在中小型系统和并发量小的场合下被普遍使用&#xff0c;是开发和调试Servlet、JSP 程序的首选。 二、安装前准备 1.确保安装过jdk&#xff0c;安装过可跳过。 如果没有安装可以参考本人另外写的博文win1…

Tomcat7.0的安装及配置

本篇文章集合网上的零散经验加上2次实践整合&#xff0c;主要为大家提供如何正确使用Tomcat方法。本人安装的是7.0.77版本。 所需软件&#xff1a; JDK6.0/7.0 Tomcat 7.0 步骤&#xff1a; 1.安装JDK&#xff0c;配置好环境变量&#xff1a;JAVA_HOME、Classpath、Path 2…

win10安装tomcat7的安装与配置【详细教程】

1、tomcat传送门&#xff0c;群文件自取&#xff1b;群号&#xff1a;708072830 2、下载解压之后&#xff0c;先安装好tomcat 第一步&#xff1a; 在Tomcat bin路径下 找到 startup.bat 双击 打开&#xff0c;闪退表示 安装或者配置 失败&#xff1b;如下&#xff1b;界面不…

Tomcat7.0/8.0 详细安装配置

Tomcat 7.0 、Tomcat8.0 详细安装配置图解,以及UTF-8编码配置 注意:安装配置tomcat7.0及以上,需要先安装JDK1.7及以上才能支持。 1、先下载tomcat压缩包 Tomcat 7 :http://tomcat.apache.org/download-70.cgi Tomcat 8 : http://tomcat.apache.org/download-80.cgi …

tomcat7.0安装

下载地址 tomcat7.0下载地址 https://tomcat.apache.org/download-70.cgi 同事推荐别安装最新版&#xff0c;说是不稳定&#xff01; 安装前说明 安装tomcat之前一定要有jdk。 下载包分为安装版与免安装版&#xff0c;我使用的是安装版&#xff0c;安装完成后不需要配置环…

CentOS8-Tomcat7安装并设置开机自启动

CentOS8-Tomcat7安装并设置开机自启动 1、安装 将压缩包文件apache-tomcat-7.0.57.tar.gz利用Xftp 6工具上传到/usr/local中并解压&#xff08;为了以后可能会安装多个Tomcat,我将解压后的文件移动到了新建目录tomcat-cluster下并重命名&#xff09;&#xff1a; tar -xvf a…

java和 Tomcat9.0 Tomcat7 安装配置

工具/原料 JDK1.7.0 WIN7 方法/步骤 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk &#xff0c;第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。&#xff08;不能都安装在java文件夹的根目录下&#xff0c;jdk和jre安装…

如何安装Tomcat

本篇文章主要讲解的是如何安装Tomcat&#xff08;超详细&#xff09;。 下面是详细步骤&#xff08;具体操作可看图片上的标记&#xff09;&#xff1a; 1、如果你看完我上一篇文章“如何下载Tomcat”后&#xff0c;你会看到下图&#xff0c;在这我主要讲解的是在windows系统…

ubuntu安装Tomcat7

Tomcat7安装包已经被下载 需要传输到Ubuntu上 使用filezilla软件进行传输 在Ubuntu中安装ssh远程连接 sudo apt install openssh-server我在安装的ssh过程中出现了 如下问题&#xff1a; 时出现提示无法修正错误&#xff0c;因为您要求某些软件包保持现状&#xff0c;就是它…

tomcat7安装和eclipse中配置

一、tomcat安装 1.从官网上下载tomcat 7 https://tomcat.apache.org/download-70.cgi 2. 配置环境变量 &#xff08;电脑本身已经配置好jdk环境变量&#xff09; 在已有的CLASSPATH中添加 %CATALINA_HOME%\lib\servcet-api.jar Path中添加 &#xff1a;%CATALINA_HOME%…

eclipse安装Tomcat7.0(图文详解)

分享一个tomcat7&#xff0c;链接:https://pan.baidu.com/s/1Miwccc2DspBPOgY6rpl81w 密码:t33t 下载完压缩到指定文件夹&#xff1a; 在eclipse中点击菜单Window-->Preferences 点击Add按钮&#xff1a;选择对应的tomcat版本&#xff0c;我们这个是7.0 点击Next按钮&…

解压版tomcat7安装教程

转载地址 Tomcat涉及到的配置比较多&#xff0c;文件也多&#xff0c;根据我现在掌握的知识&#xff0c;简单的做了一下免安装版的tomcat的基本配置和安装方法。 一、配置JDK 要想在自己的计算机上安装Tomcat,需要JDK的支持&#xff0c;因为Tomcat是用java语言编写的一个很轻量…

Linux安装tomcat7详解

目录 前言 一、下载tomcat7安装包 二、解压tomcat文件包 1、进入/usr/local 2、将文件上传到此处&#xff0c;可以使用FinalShell进行操作 3、使用命令ls查看文件 4、解压tomcat文件 三、启动tomcat 1、进入tomcat文件并查看 2、进入bin目录 3、启动tomcat 四、验…

Tomcat7.0安装配置详细(图文)

2019独角兽企业重金招聘Python工程师标准>>> 说明&#xff1a;Tomcat服务器上一个符合J2EE标准的Web服务器&#xff0c;在tomcat中无法运行EJB程序&#xff0c;如果要运行可以选择能够运行EJB程序的容器WebLogic&#xff0c;WebSphere&#xff0c;Jboss等 Tomcat的下…

win7下安装配置Tomcat 7.0

1 Java环境搭建 这里需要安装JDK及其环境变量的配置。具体过程可以参考我之前写的Java开发环境搭建 一文&#xff0c;此处不再赘述。 2 Tomcat 7.0安装及配置 2.1 Tomcat 7.0下载及安装 Tomcat 7.0 的免安装版&#xff0c;下载地址&#xff1a;http://tomcat.apache.org/do…

Windows下的Tomcat7安装与环境配置

本文仅用于博主学习记录&#xff0c;与分享&#xff0c;如有雷同纯属巧合&#xff0c;谢谢! Tomcat安装开始和配置&#xff08;相对比较简单&#xff09;&#xff1a; 重要&#xff1a; 一定要先安装 JDK 1、先安装 Java Tomcat 运行需要JVM&#xff0c;需要先进行 java 的安…

Tomcat7安装及配置教程

Apache Tomcat7.0安装及配置教程、、 Apache Tomcat7.0官方网站链接:http://tomcat.apache.org/ apache-tomcat-7.0.73-windows-x64 先解压下载的压缩包、然后在bin目录下找到startup.bat文件、并用鼠标双击此文件 一月 12, 2017 1:47:26 下午 org.apache.catalina.…

安装配置Tomcat7教程

1. 下载安装配置JDK 需要先安装配置好Java环境&#xff0c;怎么配Java环境不再赘述。 2. 下载Tomcat7安装包 这里提供的是Windows-64位安装包 链接&#xff1a;https://pan.baidu.com/s/16u8Ai9MNOrJyRhm3Ymt-dg 提取码&#xff1a;xdwh3. 下载解压&#xff0c;打开bin目录&am…