【问题标题】:Calculating volumes of hollow three dimensional geometric objects计算空心三维几何对象的体积
【发布时间】:2009-04-02 09:14:54
【问题描述】:

我们收到了一个关于继承的 Java 作业。我对编程本身没有问题,但我对某些数学有点不确定,希望得到更有知识的人的确认/更正。

分配从一个抽象类 GeometricObject 开始,它被扩展为三个二维对象。一个长方形、一个圆形和一个三角形。然后将这三个扩展为矩形的长方体,圆形的圆柱体和球体,并将三角形扩展为三棱柱。

每个三维物体都是空心的,有一定的厚度,由一种特殊的金属制成,所以我们要计算它们的重量。这就是问题所在,因为我有点不确定如何在其中一些上找到“内部体积”。

  • 长方体:这里我假设我可以从宽度、高度和深度中减去 2 * 厚度,然后一切看起来都很好。
  • 圆柱体:从构成底部的半径中减去厚度,从高度中减去 2* 厚度
  • 球体:从半径中减去厚度
  • Prism:这是我有点卡住的地方。每个对象都通过基线、三角形的高度和整个棱镜的高度。如何使用它来找到代表内部体积的“内部棱镜”?

更新:忘了说在创建对象的时候,我们指定了最外面的尺寸,空心的部分在这个里面。不允许反其道而行之。

再次更新:三角形是等腰三角形。

再次更新:混合了圆形的半径和直径。现已更正。

【问题讨论】:

  • 对于圆柱体和球体:您的意思是从半径中减去厚度。 (或从直径中减去 2* 厚度。)
  • 是的,当然。有点搞混了

标签: java math geometry


【解决方案1】:

我认为您无法从您拥有的数据(基线长度和三角形高度)中获得此结果。您必须获取其他信息,例如点的位置或基线处的角度。

编辑:因为三角形是等腰的:

正如 AnthonyWJones 已经指出的那样,内三角形与外三角形相似。因此,您唯一需要做的就是找到两者之间的比率。

sketch http://img76.imageshack.us/img76/4164/g2654.png

您可以从高处轻松找到它。由于三角形 CQP 和 ACS 相似

h2 : |PQ| = |AC| : |AS|

在哪里

|PQ| = h1 (= the thickness of the metal)
|AC| = sqrt(base^2/4+height^2)
|AS| = base/2

然后,您计算h2,比率r = (height - h1 - h2)/height 是两个三角形之间的比率。那么内三角形的面积就是r^2 * area of the outer triangle

【讨论】:

  • 可能有助于提及三角形是等腰三角形,两条边的长度相等。这意味着基线附近的两个角度是相同的。没有更多的给出,并且可以计算它
【解决方案2】:

获取形状的体积,就好像它们不是空心的一样,然后,得到空心的体积只是(形状 - 厚度)

从空心体积中减去全体积,得到金属的实际体积。

例子:

立方体:

Full Volume: Height * Width * Depth

hollow volume: (Height - Thickness) * ( Width - Thickness ) * ( Depth - Thickness)

Volume of the metal used: Full Volume - hollow Volume

根据所用金属的体积计算重量..


假设你的棱镜是三角形的并且三角形是等边的基线是三角形的底边,高度是从基线到对面的点(高度线在右边与基线的角度)。

那么整个音量就是

fv = (1/2 * baseLine * triangleHeight) * prismHeight 

空心体积是

hv = (1/2 * (baseline - thickness) * (triangleHeight - thickness)) * (prismHeight - thickness)

阅读您对 jpaleck 的评论后,看起来您的基线是三角形的斜边,(最长的线),以上应该仍然适用。


【讨论】:

  • 是的,这适用于长方体,我就是这样做的。但是它对棱镜有什么作用呢?将那里的每个长度也缩短是否正确?
  • 假设你的棱镜是三角形的,三角形是等边的。那么全体积为 fv = (1/2 * baseLine * triangleHeight) * prismHeight,空心体积为 (1/2 * (baseline - thickness) * (triangleHeight - thickness) * prismHeight
  • 您可能需要将粗细乘以 2,以便考虑每侧线条长度的变化。作为 10 的厚度,当绘制一个在每个维度上缩短 10 的形状时,实际上只给出了 5 的金属厚度。
  • @Killersponge:如果三角形是等边的,则不需要像问题所示那样包括棱镜的高度。
  • 确实如此。虽然上面的公式是合理的,但假设基线是三角形的一侧,三角形的高度是从那条线的中心到它对面的点。
【解决方案3】:

关于内棱镜,您知道的一件事是,它与外棱镜具有相同的比率。换句话说,给定内棱镜的高度,您可以计算内底长度和体积。

您知道底座的厚度为 1 个单位。这样就剩下计算内棱镜顶点到外棱镜顶点的距离了。

这个距离是直角三角形的斜边。三角形中的角度是已知的,因为它们是基础长度和高度的函数。三角形的一侧是thickness 长度,是从内部顶点的内边缘到外边缘的垂直线。 (三角形的最后一边是垂直线与外边缘相交的位置,直到外顶点)。

这些信息足以使用标准三角函数来计算斜边长度。这个长度加上从原始高度减去的 1 厚度(对于底座)给出了内部高度。内部和外部高度之间的比率可以应用于基础长度。

可能有更聪明的方法可以做到这一点,但这将是我常用的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2014-04-26
    • 2021-10-12
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多