/*
translation:
三维坐标系上有2个棱柱,分别平行与Z轴以及Y轴,现在分别给出它们在XY平面和XZ平面上的底面顶点,求两个棱柱相交部分的体积。
solution:
主要思路是不难,但前提得知道simpson公式。利用该公式即可将积分公式化为普通的公式。然后微积分求出来的既是体积。
*/
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 200 + 5;
const double INF = 0x3f3f3f3f * 1.0;
int X1[maxn], Y1[maxn], m, n;
int X2[maxn], Z2[maxn];
vector<int> xv;
double getWidth(int* X, int* Y, int n, double x)
{
double lb = INF, ub = -INF;
for(int i = 0; i < n; i++) {
double ax = X[i], ay = Y[i];
double bx = X[(i+1)%n], by = Y[(i+1)%n];
if((ax - x) * (bx - x) <= 0 && ax != bx) {
double y = (by - ay) / (bx - ax) * (x - ax) + ay;
lb = min(lb, y); ub = max(ub, y);
}
}
return max(0.0, ub-lb);
}
int main()
{
//freopen("in.txt", "r", stdin);
while(~s
aoj1313(*simpson公式求三维体积)
最新推荐文章于 2020-07-17 16:39:56 发布
这篇博客介绍了如何利用Simpson公式来解决三维空间中两个平行于坐标轴的棱柱相交部分的体积计算问题。通过将积分转化为普通公式,并应用微积分,可以求解出体积。
摘要由CSDN通过智能技术生成