六边形网格到方形网格的插值

问题描述

我有形成六边形点阵顶点的 x,y 坐标(即 (x[i],y[i]) 表示一个点和 az 值(一维数组),使得 z[i] 是值在点 (x[i],y[i])。如何将 z 插值到规则的方形网格(用于计算 z 的偏导数)?

import numpy as np
import matplotlib.pyplot as plt

def hex_pts(Nx,Ny):
    x_a,y_a = [],[]  
    for jj in range (Nx):
        for ii in range(0,Ny,4):
            x_a.append(0+jj*np.sqrt(3)); y_a.append(3*ii/4)
            x_a.append(-np.sqrt(3)/2+jj*np.sqrt(3)); y_a.append(3*ii/4+1/2)
            x_a.append(-np.sqrt(3)/2+jj*np.sqrt(3)); y_a.append(3*ii/4+1/2+1)
            x_a.append(0+jj*np.sqrt(3)); y_a.append(3*ii/4+1/2+1+1/2)
    x_a = np.asarray(x_a)
    y_a = np.asarray(y_a)
    
    return x_a,y_a
def zfun(x,y):
    return x**2+y**2
xa,ya = hex_pts(20,40)
z = zfun(xa,ya)

plt.figure(1)
plt.scatter(xa,ya,s=12)
plt.axis('equal')

plt.figure(2)
plt.scatter(xa,c=z)
plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)