代码编织梦想

from math import pi
from math import sqrt,cos,sin,ceil
arr = []
for i in range(8):
    arr.append(list(map(int,input().split())))
n = int(input())
T = int(input())
data = list(map(int,input().split()))
for i in range(64-n):
    data.append(0)
filled_arr = [[0,0,0,0,0,0,0,0] for i in range(8)]

row = 0
col = 0
j = 0
for i in range(16):
    triangle_flag = 1 if i>=7 else 0
    if not triangle_flag:
        if i&1 == 0:#偶数,斜向上
            while row>=0:
                filled_arr[row][col] = data[j]
                row-=1
                col+=1
                j+=1
            row+=1
        if i&1 == 1:#奇数,斜向下
            while col>=0:
                filled_arr[row][col] = data[j]
                row+=1
                col-=1
                j+=1
            col+=1
    if triangle_flag:
        if i&1 == 0:
            while col<8:
                filled_arr[row][col] = data[j]
                row-=1
                col+=1
                j+=1
            row+=2
            col-=1
        if i&1 == 1:
            while row<8:
                filled_arr[row][col] = data[j]
                row+=1
                col-=1
                j+=1
            col+=2
            row-=1
for i in range(8):
    for j in range(8):
        arr[i][j] = filled_arr[i][j]*arr[i][j]

temp_arr = [[0,0,0,0,0,0,0,0]for i in range(8)]
res_arr = [[0,0,0,0,0,0,0,0]for i in range(8)]

for i in range(8):
    for j in range(8):
        temp = 0
        for u in range(8):   
            for v in range(8):
                au = sqrt(0.5) if u == 0 else 1
                av = sqrt(0.5) if v == 0 else 1
                temp += au*av*arr[u][v]*cos((pi*0.125)*(i+0.5)*u)*cos((pi*0.125)*(j+0.5)*v)
        temp_arr[i][j] = 0.25*temp+128
        delta = temp_arr[i][j]-int(temp_arr[i][j]) 
        res_arr[i][j] = int(temp_arr[i][j])+1 if delta>=0.5 else int(temp_arr[i][j])
        if res_arr[i][j]>255:
            res_arr[i][j] = 255
        if res_arr[i][j]<0:
            res_arr[i][j] = 0

if T == 0:
    for i in range(8):
        print(*filled_arr[i])
elif T == 1:
    for i in range(8):
        print(*arr[i])
elif T == 2:
    for i in range(8):
        print(*res_arr[i])


    
                


        

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_51532123/article/details/130844597