def donut(point, r, m1, m2, m3, m4, remove=False): #Koordinaten, Radius, Materialien
point=[point[0], point[1], point[2]]
if remove == True:
m1 = AIR
m2 = AIR
m3 = AIR
m4 = AIR
#Dicke
d1 = r*0.1
d2 = r*0.2
d3 = r*0.3
d4 = r*0.125
#Gebäck
for a in range(d1):
shapes.circle(m1,
world(point[0], point[1]-a, point[2]),
r,
Axis.Y,
ShapeOperation.REPLACE)
for b in range(d2):
shapes.circle(m1,
world(point[0], point[1]-d1-b, point[2]),
r-1,
Axis.Y,
ShapeOperation.REPLACE)
#Glassur
for c in range(d3):
shapes.circle(m2,
world(point[0], point[1]+d1+c, point[2]),
r,
Axis.Y,
ShapeOperation.REPLACE)
for d in range(d4):
shapes.circle(m2,
world(point[0], point[1]+d1+d3+d, point[2]),
r-1,
Axis.Y,
ShapeOperation.REPLACE)
#Verzierung
distance_from_side= point[1]+d1+d3+d4+1
l_spark=[]
for i in range(20):
a = (Math.random()*(3.14)*2) #Just get a random angle :>
randz=randint(point[2]+(Math.sin(a)*r),point[2]-(Math.sin(a)*r))
randx=randint(point[0]+(Math.cos(a)*r),point[0]-(Math.cos(a)*r))
color=[m3, m4] #colors
#dicke=[distance_from_side+1,distance_from_side]
cr=color[randint(0,len(color)-1)]
#cd=dicke[randint(0,len(dicke)-1)]
cd=distance_from_side
blocks.place(cr, world(randx, cd, randz))
l_spark.append([randx,cd, randz])
#Loch
L = d1+d2+d3+d4+2
r_loch=r/3
for f in range(L):
y_loch=point[1]-d1-d2+f
shapes.circle(AIR,
world(point[0], y_loch, point[2]),
r_loch,
Axis.Y,
ShapeOperation.REPLACE)
return l_spark
zurück