目录
一,祖暅原理
如果界于两个平行平面之间的两个立体,被任一平行于这两个平面的平面所截,两个截面的面积都相等,则这两个立体的体积相等。
二,正多边形
正多边形是指二维平面内各边相等,各角也相等的多边形。
显然,除了正三角形之外,各边相等各角也相等2个条件缺一不可。
由正多边形组成的多面体,分为这五类:
正多面体、半正多面体、正棱柱、反棱柱、詹森多面体。
正棱柱、反棱柱都有无穷多种,正多面体、半正多面体、詹森多面体共110种。
三,正多面体
正多面体,是指多面体的各个面都是全等的正多边形,并且各个多面角都是全等的多面角。
五种正多面体,即是正四面体、正六面体、正八面体、正十二面体和正二十面体。
用欧拉定理证明只有5种正多面体:
求解不定方程组,得到5个解:
四,阿基米德半正多面体
阿基米德半正多面体是指,边数不全相同的正多边形组成且所有多面角都相同的凸多面体,排除侧面是正方形的正棱柱、反棱柱。
阿基米德半正多面体一共有13种:
五,詹森(Johnson)多面体
詹森多面体是指除正多面体、半正多面体、正棱柱、反棱柱之外,所有由正多边形面组成的凸多面体。
1996年被证明一共有96个。
1,基本几何体
其中3种基本几何体:棱锥、台塔和丸塔。
棱锥:正四棱锥和正五棱锥
台塔:正三角台塔、正四角台塔、正五角台塔。
丸塔:只有一种,即正五角丸塔。它恰好是截半正12面体的一半。
2,詹森多面体分类
黄色区域是3种基本几何体,浅绿色区域表示基本几何体之间的组合,蓝色区域表示在棱柱、反棱柱、正多面体、半正多面体的基础上增加或削去基本几何体所得到的结构,深绿色区域表示其他类型的约翰逊多面体。
六,OJ实战
力扣 892. 三维形体的表面积
给你一个 n * n
的网格 grid
,上面放置着一些 1 x 1 x 1
的正方体。每个值 v = grid[i][j]
表示 v
个正方体叠放在对应单元格 (i, j)
上。
放置好正方体后,任何直接相邻的正方体都会互相粘在一起,形成一些不规则的三维形体。
请你返回最终这些形体的总表面积。
注意:每个形体的底面也需要计入表面积中。
示例 1:
输入:grid = [[1,2],[3,4]] 输出:34
示例 2:
输入:grid = [[1,1,1],[1,0,1],[1,1,1]] 输出:32
示例 3:
输入:grid = [[2,2,2],[2,1,2],[2,2,2]] 输出:46
提示:
n == grid.length
n == grid[i].length
1 <= n <= 50
0 <= grid[i][j] <= 50
class Solution {
public:
int surfaceArea(vector<vector<int>>& grid) {
int ans = 0;
for (int i = 0; i < grid.size(); i++) {
int m = 0;
for (int j = 0; j < grid[0].size(); j++) {
if (grid[i][j]) ans++;
if (grid[i][j] > m) ans += grid[i][j] - m;
m = grid[i][j];
}
}
for (int j = 0; j < grid[0].size(); j++) {
int m = 0;
for (int i = 0; i < grid.size(); i++) {
if (grid[i][j] > m) ans += grid[i][j] - m;
m = grid[i][j];
}
}
return ans * 2;
}
};