如何计算Python绘制的3D曲面图形的体积
如何计算Python绘制的3D曲面图形的体积
看起来你已经成功用Matplotlib画出了3D三角曲面,现在要计算它的体积对吧?先明确一下:咱们要算的是这个曲面**与某个基准平面(比如所有点的最低z值平面,毕竟你的数据z都在628-633之间,这个基准面更符合“图形凸起部分的体积”的需求)**之间的空间体积。
先回顾下你已经实现的代码,以及数据格式:
你的3D曲面绘制代码
import pandas as pd import matplotlib.pyplot as plt with open('PS.txt', 'r') as f: # 读取PS.txt,列格式为:序号, x, y, z df = pd.read_csv(f, sep=",", header=None, names=["index", "x", "y", "z"]) x = df['x'].values y = df['y'].values z = df['z'].values fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_trisurf(x, y, z) plt.show()
你的PS.txt数据示例(完整内容如下)
1,152691.129,213258.428,631.716 2,152691.316,213256.857,631.827 3,152692.729,213255.315,631.945 4,152695.035,213250.459,631.882 5,152696.787,213246.130,632.107 6,152698.298,213242.364,631.578 7,152699.839,213239.028,631.723 8,152700.217,213237.356,631.350 9,152701.883,213233.297,631.206 10,152702.981,213229.478,631.392 11,152705.247,213224.878,631.609 12,152706.485,213222.668,632.294 13,152708.542,213219.988,632.765 14,152708.552,213220.002,632.750 15,152711.060,213215.836,632.809 16,152713.617,213211.422,632.346 17,152718.564,213202.802,631.409 18,152722.731,213197.100,631.362 19,152726.272,213192.046,631.498 20,152730.236,213186.253,631.371 21,152734.179,213180.031,631.452 22,152737.690,213175.369,631.344 23,152741.310,213177.118,631.309 24,152748.978,213182.575,631.163 25,152756.270,213188.301,631.247 26,152759.305,213190.724,631.267 27,152762.942,213192.492,631.256 28,152765.987,213194.916,631.162 29,152769.216,213197.108,631.358 30,152771.065,213200.136,631.245 31,152769.791,213202.537,631.736 32,152767.962,213205.946,631.614 33,152764.967,213211.123,631.717 34,152762.501,213215.213,631.571 35,152758.903,213221.344,631.816 36,152757.514,213225.138,632.015 37,152754.682,213229.676,631.975 38,152751.918,213234.024,631.889 39,152748.804,213239.425,632.106 40,152745.263,213245.349,631.928 41,152741.336,213251.451,631.912 42,152737.827,213256.240,632.071 43,152733.422,213263.828,632.060 44,152729.597,213269.791,632.211 45,152727.207,213273.974,632.440 46,152725.795,213276.797,632.435 47,152725.042,213277.064,632.554 48,152723.422,213276.584,632.513 49,152715.066,213272.147,632.442 50,152709.221,213268.936,632.387 51,152702.480,213264.648,632.467 52,152697.043,213261.739,632.231 53,152693.678,213259.727,632.141 54,152718.231,213206.304,629.044 55,152720.573,213203.068,628.925 56,152723.331,213199.193,628.898 57,152723.927,213196.993,628.870 58,152728.193,213190.552,628.813 59,152731.767,213185.322,628.960 60,152735.617,213179.673,629.032 61,152737.550,213176.409,629.168 62,152740.349,213177.727,629.093 63,152747.789,213183.248,628.736 64,152755.001,213188.781,628.874 65,152758.970,213192.543,629.045 66,152761.357,213193.329,629.181 67,152766.041,213196.920,629.269 68,152767.944,213199.372,629.367 69,152768.401,213201.151,629.219 70,152764.862,213207.360,629.122 71,152761.754,213212.748,629.312 72,152757.478,213220.474,629.310 73,152753.623,213228.269,629.393 74,152748.167,213237.432,629.557 75,152742.455,213247.561,629.629 76,152737.519,213254.209,629.883 77,152733.522,213259.618,630.021 78,152732.286,213261.395,629.511 79,152728.106,213268.732,629.516 80,152726.549,213271.128,629.326 81,152723.805,213274.373,629.317 82,152721.984,213273.677,629.192 83,152716.138,213270.812,629.574 84,152710.821,213268.060,629.567 85,152706.132,213265.473,629.309 86,152701.330,213262.217,628.895 87,152697.388,213260.418,628.983 88,152694.490,213258.500,629.225 89,152693.393,213258.304,629.621 90,152694.345,213256.439,629.329 91,152696.949,213251.571,629.259 92,152698.927,213246.215,629.155 93,152700.346,213242.499,629.009 94,152702.244,213238.054,628.970 95,152703.983,213233.276,628.897 96,152705.018,213229.281,629.012 97,152706.526,213226.382,629.127 98,152707.929,213223.484,629.261 99,152711.127,213219.338,629.268 100,152713.425,213215.829,629.093 101,152716.183,213210.623,628.744 102,152699.816,213255.436,628.810 103,152703.999,213257.574,628.649 104,152708.446,213259.993,629.049 105,152715.256,213263.596,629.281 106,152719.561,213265.977,629.373 107,152724.048,213268.319,629.370 108,152726.984,213263.115,629.579 109,152724.089,213260.586,629.322 110,152718.138,213256.749,629.407 111,152713.111,213253.939,629.257 112,152709.817,213251.502,628.953 113,152707.199,213249.989,628.670 114,152702.574,213247.411,628.844 115,152705.577,213241.685,628.898 116,152710.906,213




