微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决六边形网格到方形网格的插值

我有形成六边形点阵顶点的 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 举报,一经查实,本站将立刻删除。