"""i cinque poliedri regolari""" def poli(lato,angolo,t): t.avanti3d(lato) t.imbarda(-angolo) curva=angolo while abs(curva)<2*math.pi: t.avanti3d(lato) t.imbarda(-angolo) curva=curva+angolo def tetraedro(lato,t): poli(lato,2*math.pi/3,t) t.rolla(-1.2309594) poli(lato,2*math.pi/3,t) t.rolla(1.2309594) t.pennasu() t.avanti3d(lato) t.pennagiu() t.imbarda(-2*math.pi/3) t.rolla(-1.2309594) poli(lato,2*math.pi/3,t) t.rolla(1.2309594) t.imbarda(2*math.pi/3) t.pennasu() t.avanti3d(-lato) t.pennagiu() def ottaedro(lato,t): for i in range(4): t.rolla(-0.9553166) #angolo in rad con il piano del quadrato poli(lato,2*math.pi/3,t) t.avanti3d(lato) t.rolla(0.9553166) t.imbarda(-math.pi/2) t.rolla(math.pi) for i in range(4): t.rolla(0.9553166) poli(lato,-2*math.pi/3,t) t.avanti3d(lato) t.rolla(-0.9553166) t.imbarda(math.pi/2) t.rolla(-math.pi) def icosaedro(lato,t): for k in range(5): t.rolla(-0.6523582) # angolo in rad con il piano del pentagono poli(lato,2*math.pi/3,t) t.rolla(-0.7297277) poli(lato,-2*math.pi/3,t) t.rolla(0.7297277) t.rolla(0.6523582) t.avanti3d(lato) t.imbarda(-2*math.pi/5) t.rolla(-0.6523582-0.7297277) t.imbarda(math.pi/3) t.avanti3d(lato) t.imbarda(-math.pi/3) t.rolla(+0.6523582+0.7297277) t.imbarda(-36*math.pi/180) for k in range(5): t.rolla(-math.pi+0.6523582) poli(lato,-2*math.pi/3,t) t.rolla(math.pi-0.6523582) t.avanti3d(lato) t.imbarda(-2*math.pi/5) t.imbarda(36*math.pi/180) t.rolla(-0.6523582-0.7297277) t.imbarda(math.pi/3) t.avanti3d(-lato) t.imbarda(-math.pi/3) t.rolla(0.6523582+0.7297277) def dodecaedro(lato,t): for k in range(5): t.rolla(-1.1071487) # angolo in rad con il piano del pentagono poli(lato,-72*math.pi/180,t) t.rolla(1.1071487) t.avanti3d(lato) t.imbarda(-2*math.pi/5) t.rolla(-1.1071487) t.imbarda(108*math.pi/180) t.avanti3d(lato) t.imbarda(-72*math.pi/180) t.avanti3d(lato) t.imbarda(-72*math.pi/180) t.rolla(-1.1071487) t.imbarda(108*math.pi/180) t.avanti3d(lato) t.imbarda(-72*math.pi/180) t.imbarda((72-108)*math.pi/180) t.rolla(1.1071487) t.imbarda((72+72-108)*math.pi/180) t.rolla(1.1071487) t.imbarda(-36*math.pi/180) for k in range(5): t.rolla(-math.pi+1.1071487) # angolo in rad con il piano del pentagono poli(lato,72*math.pi/180,t) t.rolla(-math.pi-1.1071487) t.avanti3d(lato) t.imbarda(-2*math.pi/5) t.imbarda(36*math.pi/180) t.rolla(-1.1071487) t.imbarda(-36*math.pi/180) t.rolla(-1.1071487) t.imbarda(108*math.pi/180) t.avanti3d(-lato) t.imbarda(-108*math.pi/180) t.rolla(1.1071487) t.imbarda(72*math.pi/180) t.avanti3d(-lato) t.imbarda(72*math.pi/180) t.avanti3d(-lato) t.imbarda(-108*math.pi/180) t.rolla(1.1071487) def cubo(lato,t): for j in range(4): for k in range(4): t.avanti3d(lato) t.beccheggia(math.pi/2) t.avanti3d(lato) t.imbarda(math.pi/2) def cuboric(lato,t): if lato>0.2: for j in range(4): for k in range(4): t.avanti3d(lato) t.beccheggia(math.pi/2) cuboric(lato/4.0,t) t.avanti3d(lato) t.imbarda(math.pi/2) def assi3d(t): t.avanti3d(8) t.avanti3d(-16) t.avanti3d(8) t.beccheggia(math.pi/2) t.avanti3d(8) t.avanti3d(-16) t.avanti3d(8) t.beccheggia(-math.pi/2) t.imbarda(math.pi/2) t.avanti3d(8) t.avanti3d(-16) t.avanti3d(8) t.imbarda(-math.pi/2) from graftarta2 import Graf import math t=Graf("tarta 3d",600,400) t.setBackground("white") t.coordinate(-10,-8,10,8) t.nascondi_tarta() t.imbardaR(-math.pi/6) #beccheggiaR(math.pi/12) t.rollaR(math.pi/6) #t.rollaR(math.pi/6) #t.beccheggiaR(math.pi/12) t.rollaR(math.pi/8) #assi3d(t) #t.pennasu() #t.aspos3d(-8,0,0) #t.pennagiu() #t.avanti3d(-4) t.colorePenna("red") t.spessorePenna(1) #t.imbarda(math.pi/9) #dodecaedro(3) #t.pennasu() #t.aspos3d(-10,0,0) #t.pennagiu() #cubo(8,t) #cubo(6,t) cuboric(8,t) #t.colorePenna("green") #t.spessorePenna(3) #tetraedro(3,t) #tetraedro(6,t) #icosaedro(6,t) #dodecaedro(2,t)