计算工具 · 数学计算

几何计算

三角形/圆/球/圆柱/圆锥面积体积

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 59 次使用

立体正方体Cube

输入边长,得到体积 / 表面积 / 对角线 / 外接·内切球

示意图按输入维度比例自适应绘制 · 标注随之联动
公式与代入面积 · 周长 · 体积 · 表面积
分步计算公式代入 · 数值演算
单位换算主结果按常用单位换算
常见图形速算一键载入典型尺寸
使用说明公式约定 · 计算口径

三角形三种输入:三边 SSS(海伦公式 s=(a+b+c)/2,面积=√(s(s−a)(s−b)(s−c)))、底·高两边夹角 SAS(面积=½·a·b·sinC);额外给出三内角、形状类型、外接圆 R=abc/(4·面积)、内切圆 r=面积/s。

正多边形 / 正棱柱 / 正棱锥底面均为正 n 边形,外接圆 R=a/(2 sin(π/n)),边心距(内切半径) m=a/(2 tan(π/n)),底面积=½·n·a·m。

圆台 / 棱台体积 V=⅓·h·(S₁+S₂+√(S₁S₂));圆锥母线 l=√(r²+h²),圆台母线 l=√((R−r)²+h²)。

圆环 Torus:R 为环心到管心距离(大半径),r 为管半径,需 R≥r。V=2π²Rr²,S=4π²Rr。

所有计算在浏览器本地完成,输入不上传服务器;状态可经 URL hash 分享回填(如 #s=cylinder&r=4&h=8)。

就绪 · 选择图形并输入维度,结果即时联动
第一节

关于本工具

About

画施工图算圆管面积时,手算π取几位总不踏实,改一次半径就得重算全表。这个工具把三角形、圆形到圆锥的周长、面积和体积公式固化成输入框,改一个数即时刷新全部结果,不用翻公式手册。计算全程在浏览器内完成,数据不会离开本地。

使用场景

水管工备料计算

装修师傅老张接了个别墅花园水管铺设的活,需要从蓄水池接一条主管到三个不同方向的喷灌区,主管要经过两个直角弯。他拿卷尺量了三个直线段分别是 4.2 米、3.8 米、2.5 米,但主管实际走向是一个直角折线,总长不是简单相加。用本工具分别计算两个直角三角形的斜边长度,再累加得到主管实际用料 10.9 米,比估算多出近 1 米,避免了二次跑腿买管。

鱼缸换水水量

鱼友小王养了一缸七彩神仙,缸体是 120cm×45cm×50cm 的长方体,平时换水只凭感觉倒桶,上周换水太多导致硝化系统崩溃。他用量杯测出每次换水需要抽出水面以下 10cm 高度的旧水,用本工具输入长宽高算出那层水体积为 54 升,正好是 3 个 18 升桶的量。从此换水不再靠猜,鱼的状态稳定了很多。

露营帐篷地布裁剪

户外爱好者阿杰买了一块 3m×2m 的防水布,想给金字塔帐篷裁一块六边形地布。帐篷底边是 2.4m 的正六边形,他需要知道六边形的面积来决定防水布是否够用。用本工具的正多边形面积公式输入边长 1.2m、边数 6,算出面积约 3.74 平方米,防水布面积 6 平方米完全够用,还能多裁出两个三角片做门厅挡雨。

阳台花坛土壤估算

退休的李阿姨打算在 1.5m×0.6m 的阳台花坛里种月季,花坛深度 35cm,需要买营养土填满。她不知道体积怎么算,用本工具输入长宽高得到花坛容积 0.315 立方米。去花市买土时,卖家说一袋 25 升的土约 15 公斤,她算了算需要 13 袋,让老伴分两次搬上楼,避免了买多搬不动或买少不够用。

圆锥形沙堆结算

工地材料员小刘验收了一车河沙,沙堆在卸货后自然堆成圆锥形,底圆周长 15.7 米,斜坡高度(母线)4 米。供应商报 18 吨,小刘怀疑虚报。他用本工具先根据周长算出底面半径 2.5 米,再用圆锥体积公式算出约 17.5 立方米,按河沙密度 1.5 吨/立方米折算约 26.25 吨。实际过磅 25.8 吨,供应商多报了 2 吨,小刘拿着计算结果去对账。

对比矩阵

维度本工具在线几何计算器传统手工计算
隐私浏览器内完成,数据不出设备需上传边长/半径至服务器纸笔计算,完全离线
速度输入即出结果,无网络延迟依赖上传与服务器响应需手动套公式、开方、计算
离线可用完全离线,无需联网必须联网完全离线
输入容错自动检测非法字符与负数部分工具仅返回错误提示无校验,算错需自查
多单位支持输入与结果可切换单位(cm/m)多数固定单位,需手动换算需自行统一单位
结果精度保留多位小数,支持科学计数通常保留2-4位取决于计算者笔算精度
第二节

使用指南

Getting Started

使用步骤

  1. 1在图形选择区点击「三角形」「圆」「球」「圆柱」或「圆锥」,页面切换对应输入表单
  2. 2在输入框中填写已知参数(如三角形底边与高、圆的半径),数值支持小数与负数
  3. 3点击「计算」按钮,结果区立即显示面积与体积数值,同时展示所用公式与计算过程

输入输出示例

输入输出说明
三角形:底 5cm,高 4cm面积 = 10.00 cm²常规:三角形面积基本公式验证,用户最常用的场景之一
圆:半径 10cm面积 = 314.16 cm²,周长 = 62.83 cm常规:半径取整十,验证 π 取 3.1416 时的精度,输出含面积和周长两个值
球:半径 0cm表面积 = 0.00 cm²,体积 = 0.00 cm³边界:半径为零的退化情况,验证工具是否正确处理零值而非报错
圆柱:底面半径 1cm,高 1000cm侧面积 = 6283.19 cm²,体积 = 3141.59 cm³边界:极端高径比(1:1000),验证大数运算是否溢出或精度丢失
圆锥:底面半径 5cm,高 12cm体积 = 314.16 cm³,母线长 = 13.00 cm常规:勾股数(5-12-13)场景,验证母线长计算正确性,用户常忽略母线
三角形:三边 3cm, 4cm, 5cm面积 = 6.00 cm²(海伦公式),周长 = 12.00 cm易错:用户可能只输入底和高,但工具也支持三边输入(海伦公式),此例验证勾股三角形面积
圆柱:底面半径 -3cm,高 5cm错误:半径不能为负数易错:负数输入的处理,工具应明确提示非法输入而非返回负面积

常见错误对照

1.半径与直径混淆

✗ 错误计算圆面积时输入直径 10,期望结果 78.54
✓ 修复半径输入 5,得到 78.54

圆面积公式 S = πr²,r 是半径。若误输入直径,面积会膨胀 4 倍,因为 (d/2)² ≠ d²。

2.三角形面积用错底边对应的高

✗ 错误三角形底边 10,高 5(实际高对应另一条边),结果 25
✓ 修复确认高垂直于底边 10,再计算 0.5 × 10 × 5 = 25

三角形面积公式 S = ½ × 底 × 高,高必须与所选底边垂直。用错对应关系会导致面积偏差。

3.圆柱体积漏乘高度

✗ 错误圆柱半径 3、高 5,只算底面积 28.27 就结束
✓ 修复底面积 28.27 × 高 5 = 141.37

圆柱体积 V = πr²h,底面积只是中间量,必须乘以高度才得到体积。

4.圆锥体积忘记除以 3

✗ 错误圆锥半径 3、高 6,直接算 π × 9 × 6 = 169.65
✓ 修复π × 9 × 6 ÷ 3 = 56.55

圆锥体积 V = ⅓πr²h,与圆柱差一个 1/3 因子。忘记除以 3 会得到同底同高圆柱的体积。

5.球体积公式中半径三次方误用平方

✗ 错误球半径 4,用 4/3 × π × 16 = 67.02
✓ 修复4/3 × π × 64 = 268.08

球体积 V = 4/3 π r³,半径三次方。用平方会使体积缩小约 r/3 倍,误差随半径增大。

6.单位不统一导致数值错误

✗ 错误半径用厘米 5,高度用米 0.1,直接算圆柱体积
✓ 修复全部转成同一单位(如厘米):半径 5 cm,高度 10 cm,再计算

几何公式要求所有长度单位一致。混用 cm 和 m 会使体积偏差 10⁶ 倍(1 m = 100 cm,体积差 100³)。

7.圆周长与面积公式互换

✗ 错误圆半径 5,想算周长却用 π × 25 = 78.54
✓ 修复周长 C = 2πr = 2 × π × 5 = 31.42

周长公式 C = 2πr,面积公式 S = πr²。两者形式相似但物理意义不同,混用会得到错误量纲。

第三节

工作原理

How It Works

核心公式

V = (4/3)πr³

变量说明

  • V球的体积
  • r球的半径
  • π圆周率,约 3.14159

示例

半径 5 cm 的球:V = (4/3)×3.14159×5³ = (4/3)×3.14159×125 = (4/3)×392.69875 ≈ 523.6 cm³。

选择图形三角形/圆/球/…输入参数边长/半径/高公式匹配面积/体积公式结果公式计算浏览器内执行输出数值面积/体积
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import math def circle_area(radius: float) -> float: return math.pi * radius ** 2 def sphere_volume(radius: float) -> float: return 4 / 3 * math.pi * radius ** 3 def cylinder_volume(radius: float, height: float) -> float: return math.pi * radius ** 2 * height def cone_volume(radius: float, height: float) -> float: return 1 / 3 * math.pi * radius ** 2 * height def triangle_area(base: float, height: float) -> float: return 0.5 * base * height # 示例 print(f"圆面积(r=5): {circle_area(5):.4f}") # 78.5398 print(f"球体积(r=5): {sphere_volume(5):.4f}") # 523.5988 print(f"圆柱体积(r=3,h=7): {cylinder_volume(3,7):.4f}") # 197.9203 print(f"圆锥体积(r=3,h=7): {cone_volume(3,7):.4f}") # 65.9734 print(f"三角形面积(b=6,h=4): {triangle_area(6,4):.4f}") # 12.0000
const PI = Math.PI; function circleArea(r) { return PI * r ** 2; } function sphereVolume(r) { return (4/3) * PI * r ** 3; } function cylinderVolume(r, h) { return PI * r ** 2 * h; } function coneVolume(r, h) { return (1/3) * PI * r ** 2 * h; } function triangleArea(b, h) { return 0.5 * b * h; } // 示例 console.log(`圆面积(r=5): ${circleArea(5).toFixed(4)}`); // 78.5398 console.log(`球体积(r=5): ${sphereVolume(5).toFixed(4)}`); // 523.5988 console.log(`圆柱体积(r=3,h=7): ${cylinderVolume(3,7).toFixed(4)}`); // 197.9203 console.log(`圆锥体积(r=3,h=7): ${coneVolume(3,7).toFixed(4)}`); // 65.9734 console.log(`三角形面积(b=6,h=4): ${triangleArea(6,4).toFixed(4)}`); // 12.0000
package main import ( "fmt" "math" ) func circleArea(r float64) float64 { return math.Pi * r * r } func sphereVolume(r float64) float64 { return 4.0 / 3.0 * math.Pi * r * r * r } func cylinderVolume(r, h float64) float64 { return math.Pi * r * r * h } func coneVolume(r, h float64) float64 { return 1.0 / 3.0 * math.Pi * r * r * h } func triangleArea(b, h float64) float64 { return 0.5 * b * h } func main() { fmt.Printf("圆面积(r=5): %.4f\n", circleArea(5)) // 78.5398 fmt.Printf("球体积(r=5): %.4f\n", sphereVolume(5)) // 523.5988 fmt.Printf("圆柱体积(r=3,h=7): %.4f\n", cylinderVolume(3,7)) // 197.9203 fmt.Printf("圆锥体积(r=3,h=7): %.4f\n", coneVolume(3,7)) // 65.9734 fmt.Printf("三角形面积(b=6,h=4): %.4f\n", triangleArea(6,4)) // 12.0000 }
use std::f64::consts::PI; fn circle_area(r: f64) -> f64 { PI * r.powi(2) } fn sphere_volume(r: f64) -> f64 { 4.0 / 3.0 * PI * r.powi(3) } fn cylinder_volume(r: f64, h: f64) -> f64 { PI * r.powi(2) * h } fn cone_volume(r: f64, h: f64) -> f64 { 1.0 / 3.0 * PI * r.powi(2) * h } fn triangle_area(b: f64, h: f64) -> f64 { 0.5 * b * h } fn main() { println!("圆面积(r=5): {:.4}", circle_area(5.0)); // 78.5398 println!("球体积(r=5): {:.4}", sphere_volume(5.0)); // 523.5988 println!("圆柱体积(r=3,h=7): {:.4}", cylinder_volume(3.0,7.0)); // 197.9203 println!("圆锥体积(r=3,h=7): {:.4}", cone_volume(3.0,7.0)); // 65.9734 println!("三角形面积(b=6,h=4): {:.4}", triangle_area(6.0,4.0)); // 12.0000 }
public class GeometryCalc { static double circleArea(double r) { return Math.PI * r * r; } static double sphereVolume(double r) { return 4.0/3.0 * Math.PI * r * r * r; } static double cylinderVolume(double r, double h) { return Math.PI * r * r * h; } static double coneVolume(double r, double h) { return 1.0/3.0 * Math.PI * r * r * h; } static double triangleArea(double b, double h) { return 0.5 * b * h; } public static void main(String[] args) { System.out.printf("圆面积(r=5): %.4f%n", circleArea(5)); // 78.5398 System.out.printf("球体积(r=5): %.4f%n", sphereVolume(5)); // 523.5988 System.out.printf("圆柱体积(r=3,h=7): %.4f%n", cylinderVolume(3,7)); // 197.9203 System.out.printf("圆锥体积(r=3,h=7): %.4f%n", coneVolume(3,7)); // 65.9734 System.out.printf("三角形面积(b=6,h=4): %.4f%n", triangleArea(6,4)); // 12.0000 } }
第五节

常见问题

Q & A
我只知道三角形的三条边,能算面积吗?还是必须知道高?

可以。本工具支持「三边(SSS)」模式,直接用海伦公式算面积,不需要高。输入三条边长后,工具会自动计算半周长并套用公式 S = √[p(p-a)(p-b)(p-c)]。注意:输入的三边必须满足三角形不等式(任意两边之和大于第三边),否则工具会提示「无法构成三角形」。

算圆柱体积的时候,半径和直径我老是搞混,输入错了结果差很多怎么办?

本工具输入框同时标注了「半径」和「直径」两个字段,且旁边有单位提示(cm/m)。如果你手里量到的是直径,直接填入直径字段即可,工具内部会自动除以 2 换算成半径再算体积。注意别填错位置——直径填到半径框里,体积会变成实际值的 4 倍。

为什么我算出来的球体积和网上其他工具不一样,差了几个小数点?

可能原因有两个:一是精度取舍,本工具内部使用双精度浮点(15-17 位有效数字),结果默认保留 6 位小数,其他工具可能只保留 3 位或做了四舍五入;二是输入的单位——如果你输入的是分米但误选了米,体积会差 1000 倍。建议先拿一个整数半径(如 r=1)测试,球体积应为 4.188790,如果一致说明工具没问题。

圆锥的母线是啥?我只知道高和底面半径,能算侧面积吗?

可以。本工具只需要底面半径 r 和高 h 就能算侧面积,内部会先算母线 l = √(r² + h²),再套侧面积公式 S = πrl。所以你不必单独测量母线。如果你只知道母线和半径,也可以反过来算高。注意:输入时高和半径的单位必须一致(比如都是 cm),否则结果会错。

这个工具算的圆面积,和用 π=3.14 手算的结果对不上?

本工具使用的圆周率是 JavaScript 内置的 Math.PI,精度约为 15 位小数(3.141592653589793),而不是近似值 3.14。以半径 10 cm 为例:工具输出 314.159265,而你手算 3.14×100=314,差约 0.159。如果你的场景要求低精度(如工程估算),可以自行四舍五入结果。

我算三角形面积时输入了三个角的角度,为什么结果不对?

本工具目前只支持「底×高/2」和「三边(海伦公式)」两种模式,不支持「角边角」或「边角边」输入。如果你只有角度和边长,需要先手动用三角函数算出高,或者用公式 S = (ab·sinC)/2 在外部计算后再填入。后续版本可能会增加角度输入方式。

这个计算器在手机上用,输入框太小总是点错数字怎么办?

本工具是纯前端页面,未使用第三方库,输入框为原生 HTML 控件。在手机上建议横屏使用,或者缩放页面(双指捏合)放大输入区域。另外,输入框支持键盘的「退格」和「清除」操作,输错时不必重新输入全部数字。如果频繁误触,可考虑使用桌面端浏览器配合数字小键盘。

我在页面里输入了数据,点计算没反应,是不是坏了?

先检查是否所有必填字段都填了数字(不允许空白或文字),以及是否填了负数——本工具只接受正数输入(几何图形边长/半径不能为负)。如果输入合法仍无反应,可能是浏览器 JavaScript 被禁用或缓存异常,尝试刷新页面(F5)或清除浏览器缓存。本工具完全在浏览器本地运行,不依赖网络,所以网络问题不会导致计算失败。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭