首页
中国名著
中国文学
外国名著
影视作品
水浒传
道德经
易经
礼记
老子他说
学习字词典
我的日志
字号++
字号--
这里可以复制文本,然后在下面粘贴。
using System; public class PlaneInterpolation3D { // 三线性插值函数 public static double TrilinearInterpolate(double[,,] data, double x, double y, double z) { int x0 = (int)Math.Floor(x); int x1 = x0 + 1; int y0 = (int)Math.Floor(y); int y1 = y0 + 1; int z0 = (int)Math.Floor(z); int z1 = z0 + 1; // 防止越界 x0 = Math.Clamp(x0, 0, data.GetLength(0) - 1); x1 = Math.Clamp(x1, 0, data.GetLength(0) - 1); y0 = Math.Clamp(y0, 0, data.GetLength(1) - 1); y1 = Math.Clamp(y1, 0, data.GetLength(1) - 1); z0 = Math.Clamp(z0, 0, data.GetLength(2) - 1); z1 = Math.Clamp(z1, 0, data.GetLength(2) - 1); // 获取周围的八个点的值 double c000 = data[x0, y0, z0]; double c100 = data[x1, y0, z0]; double c010 = data[x0, y1, z0]; double c110 = data[x1, y1, z0]; double c001 = data[x0, y0, z1]; double c101 = data[x1, y0, z1]; double c011 = data[x0, y1, z1]; double c111 = data[x1, y1, z1]; double xd = (x - x0) / (x1 - x0); double yd = (y - y0) / (y1 - y0); double zd = (z - z0) / (z1 - z0); double c00 = c000 * (1 - xd) + c100 * xd; double c10 = c010 * (1 - xd) + c110 * xd; double c01 = c001 * (1 - xd) + c101 * xd; double c11 = c011 * (1 - xd) + c111 * xd; double c0 = c00 * (1 - yd) + c10 * yd; double c1 = c01 * (1 - yd) + c11 * yd; double c = c0 * (1 - zd) + c1 * zd; return c; } // 获取平面上的插值数据 public static double[,] GetPlaneData(double[,,] data, int resolution, double[] P1, double[] P2, double[] P3) { double[,] planeData = new double[resolution, resolution]; // 计算两个向量,描述平面内的方向 double[] v1 = { P2[0] - P1[0], P2[1] - P1[1], P2[2] - P1[2] }; double[] v2 = { P3[0] - P1[0], P3[1] - P1[1], P3[2] - P1[2] }; // 遍历平面的采样点 for (int i = 0; i < resolution; i++) { for (int j = 0; j < resolution; j++) { // 计算当前采样点在平面中的坐标 double u = (double)i / (resolution - 1); double v = (double)j / (resolution - 1); double x = P1[0] + u * v1[0] + v * v2[0]; double y = P1[1] + u * v1[1] + v * v2[1]; double z = P1[2] + u * v1[2] + v * v2[2]; // 使用三线性插值获取当前点的值 planeData[i, j] = TrilinearInterpolate(data, x, y, z); } } return planeData; } public static void Main(string[] args) { // 示例三维数据 10x10x10 的体数据 double[,,] data = new double[10, 10, 10]; Random rand = new Random(); for (int x = 0; x < 10; x++) for (int y = 0; y < 10; y++) for (int z = 0; z < 10; z++) data[x, y, z] = rand.NextDouble(); // 定义平面上的三个点 double[] P1 = { 2.0, 2.0, 2.0 }; double[] P2 = { 8.0, 2.0, 2.0 }; double[] P3 = { 2.0, 8.0, 2.0 }; // 获取截面上的插值数据,分辨率设置为10x10 double[,] planeData = GetPlaneData(data, 10, P1, P2, P3); // 输出插值后的平面数据 Console.WriteLine("截面上的插值数据:"); for (int i = 0; i < planeData.GetLength(0); i++) { for (int j = 0; j < planeData.GetLength(1); j++) { Console.Write($"{planeData[i, j]:F2} "); } Console.WriteLine(); } } }
文本定期保存哦
居中
百度意思
百度图片
缓存数据
最近查询记录
2025-01-28读书
我的笔记-2024-12-23_读书
我的笔记-2024-12-22_读书
我的笔记-2024-12-18_读书
2024-11-02读书
我的笔记-2024-10-25_读书
2024-10-24读书
我的笔记-2024-10-24_读书
我的笔记-2024-10-23_读书
我的笔记-2024-10-19_读书
我的笔记-2024-10-18_读书
我的笔记-2024-10-17_读书
我的笔记-2024-10-16_读书
2024-10-16_读书读书
2024-10-15_读书读书
我的笔记-2024-10-15_读书
我的笔记-2024-10-13_读书
我的笔记-2024-10-12_读书
我的笔记-2024-10-11_读书
我的笔记-2024-10-10_读书
我的笔记-2024-10-08_读书
我的笔记-2024-10-07_读书
2024-10-07读书
我的笔记-2024-10-06_读书
2024-10-06读书
2024-10-05读书
我的笔记-2024-10-05_读书
我的笔记-2024-10-01_读书
2024-10-01读书
2024-09-28读书
我的笔记-2024-09-29_读书
2024-09-27读书
我的笔记-2024-09-27_读书
2024-09-26读书
我的笔记-2024-09-22_读书
2024-09-22读书
我的笔记-2024-09-16_读书
2024-09-16读书
我的笔记-2024-09-10_读书
2024-09-10读书
我的笔记-2024-09-08_读书
我的笔记-2024-09-07_读书
我的笔记-2024-09-03_读书
我的笔记-2024-08-22_读书
我的笔记-2024-08-18_读书
我的笔记-2024-08-12_读书
我的笔记-2024-08-11_读书
我的笔记-2024-08-10_读书
2024-08-10读书
我的笔记-2024-08-08_读书
2024-08-08读书
我的笔记-2024-07-30_读书
2024-07-30读书
我的笔记-2024-07-29_读书
我的笔记-2024-07-14_读书
我的笔记-2024-07-12_读书
我的笔记-2024-07-11_读书
我的笔记-2024-07-08_读书
2024-07-08读书
我的笔记-2024-07-06_读书
我的笔记-2024-06-30_读书
我的笔记-2024-06-26_读书
我的笔记-2024-06-25_读书
2024-06-25读书
我的笔记-2024-06-24_读书
我的笔记-2024-06-23_读书
我的笔记-2024-06-22_读书
我的笔记-2024-06-21_读书
2024-06-21读书
我的笔记-2024-06-20_读书
我的笔记-2024-06-19_读书
我的笔记-2024-06-16_读书
我的笔记-2024-06-14_读书
我的笔记-2024-06-13_读书
我的笔记-2024-06-12_读书
我的笔记-2024-06-11_读书
我的笔记-2024-06-08_读书
我的笔记-2024-06-05_读书
我的笔记-2024-06-03_读书
2024-06-03读书
我的笔记-2024-06-02_读书
我的笔记-2024-06-01_读书
我的笔记-2024-05-31_读书
2024-05-31读书
我的笔记-2024-05-28_读书
我的笔记-2024-05-26_读书
2024-05-26读书
我的笔记-2024-05-24_读书
我的笔记-2024-05-14_读书
我的笔记-2024-05-13_读书
2024-05-13读书
我的笔记-2024-05-10_读书
我的笔记-2024-05-07_读书
我的笔记-2024-05-04_读书
我的笔记-2024-05-03_读书
我的笔记-2024-05-02_读书
我的笔记-2024-05-01_读书
我的笔记-2024-04-21_读书
2024-04-21读书
我的笔记-2024-04-15_读书
反义词
近义词
词组
谜语
造句