###################
import random
import numpy as np
import matplotlib.pyplot as plt
import time
import mpl_toolkits
from mpl_toolkits.axes_grid.inset_locator import inset_axes,
zoomed_inset_axes, InsetPosition
###################
row = 20
cols = 30
timeskips = 12
def processlist(lines):
nlist = [(int(l.split(",") [0]),
int(l.split(",")[1])) for l in lines [1:]]
return nlist
def splitting(linestring):
return linestring.replace("ground:",
"").replace("wind:", "").replace("food:",
"").strip("").split(":")
def process_file(filename):
with open("Terrain_data.txt", 'r') as f:
lineread = f.readlines()
list0 = processlist(splitting(lineread[0]))
list1 = processlist(splitting(lineread[1]))
return list0, list1
def snowflake_sim (copy_flake):
flake_size = len(copy_flake)
main_flake = np.zeros ((flake_size*2,
flake_size*2))
main_flake[0:flake_size, 0:flake_size] = copy_flake
#left
main_flake[0:flake_size,flake_size:flake_size*2] =
copy_flake[:,::-1]*2 #right
main_flake[flake_size:flake_size*2:flake_size] =
copy_flake[::-1,:]*3 #left
main_flake[flake_size:flake_size*2,flake_size:flake_size*2]=copy_flake[::-1,::-1]*4
#right
return main_flake
def ground(flake_list, colour):
horizontal_list = []
vertical_list =[]
for rows,columns in flake_list:
vertical_list.append(row - rows -
1)
horizontal_list.append(columns)
plt.scatter(horizontal_list,vertical_list,
color=colour, marker='s',s=1350)
def wind(flake_list, colour) :
horizontal_list=[]
vertical_list=[]
for rows,columns in flake_list:
vertical_list.append(row - rows -
1)
horizontal_list.append(columns)
plt.scatter(horizontal_list,vertical_list, color=colour,
marker='_',s=30)
ground, wind, = process_file("Terrain_data.txt")
size = 5
flake = np.random.randint(5,size=(size,size))
snowflake1 = snowflake_sim(flake)
snowflake2 = snowflake_sim(flake)
def main():
horizontal_move = (0.9)
wind_speed = (0.15)
for i in range (timeskips) :
grav = (0.05)
if horizontal_move>0.2:
horizontal_move-=0.0545
if horizontal_move>0.45:
wind_speed+=0.05
graph, axis = plt.subplots()
axis.imshow = ground(ground, "g")
axis.imshow = wind(wind,"b")
plt.title ("Snow Flake
Simulation")
plt.xlim(-1,cols)
plt.ylim(-1,row)
print("\n ###",i, "###")
axins =
axis.inset_axes((0.3,float(horizontal_move),float(wind_speed),.3))
axins2 = axis.inset_axes((0.0,float
(horizontal_move),float (wind_speed),.3))
axins.set(xticks=[], yticks=[])
axins2.set(xticks=[], yticks=[])
im = axins.imshow(snowflake1,
origin="lower")
im = axins2.imshow(snowflake2)
plt.show()
time.sleep (1)
if __name__ == "__main__":
main()
can someone please explain every line of code in detail please.
python assignment
################### import random import numpy as np import matplotlib.pyplot as plt import time import mpl_toolkits fro
-
- Site Admin
- Posts: 899603
- Joined: Mon Aug 02, 2021 8:13 am