Modificare valori di un dizionario all'interno di una funzione

di il
2 risposte

Modificare valori di un dizionario all'interno di una funzione

Problema: Scrivi le coordinate di tutte le figure in seguito alla traslazione x'=x+5, y'=y+2

Codice:
def traslaFigure(listaFigure):
listaFigureTraslate=listaFigure

for i in range(0,len(listaFigureTraslate)):
print(listaFigureTraslate)

listaFigureTraslate['VerticePrimo']['x'] = int((int(listaFigureTraslate["VerticePrimo"]["x"]) + 5))
listaFigureTraslate['VerticePrimo']['y'] = int((int(listaFigureTraslate["VerticePrimo"]["y"]) + 2))
listaFigureTraslate['VerticeSecondo']['x'] = int((int(listaFigureTraslate["VerticeSecondo"]["x"]) + 5))
listaFigureTraslate['VerticeSecondo']['y'] = int((int(listaFigureTraslate["VerticeSecondo"]["y"]) + 2))
listaFigureTraslate['VerticeTerzo']['x'] = int((int(listaFigureTraslate[i]["VerticeTerzo"]["x"]) + 5))
listaFigureTraslate[i]['VerticeTerzo']['y'] = int((int(listaFigureTraslate[i]["VerticeTerzo"]["y"]) + 2))

if listaFigureTraslate[i]["Tipo"]=="Rettangolo":
listaFigureTraslate[i]['VerticeQuarto']['x'] = int((int(listaFigureTraslate[i]["VerticeQuarto"]["x"]) + 5))
listaFigureTraslate[i]['VerticeQuarto']['y'] = int((int(listaFigureTraslate[i]["VerticeQuarto"]["y"]) + 2))
print(listaFigureTraslate[i])

return listaFigureTraslate

Output:
{'Nome': 1, 'Tipo': 'Triangolo', 'VerticePrimo': {'x': 2, 'y': 0}, 'VerticeSecondo': {'x': 2, 'y': 0}, 'VerticeTerzo': {'x': 2, 'y': 0}}
{'Nome': 1, 'Tipo': 'Triangolo', 'VerticePrimo': {'x': 17, 'y': 6}, 'VerticeSecondo': {'x': 17, 'y': 6}, 'VerticeTerzo': {'x': 17, 'y': 6}}
{'Nome': 2, 'Tipo': 'Rettangolo', 'VerticePrimo': {'x': 20, 'y': 10}, 'VerticeSecondo': {'x': 20, 'y': 10}, 'VerticeTerzo': {'x': 20, 'y': 10}, 'VerticeQuarto': {'x': 20, 'y': 10}}
{'Nome': 2, 'Tipo': 'Rettangolo', 'VerticePrimo': {'x': 40, 'y': 18}, 'VerticeSecondo': {'x': 40, 'y': 18}, 'VerticeTerzo': {'x': 40, 'y': 18}, 'VerticeQuarto': {'x': 40, 'y': 18}}
{'Nome': 3, 'Tipo': 'Rettangolo', 'VerticePrimo': {'x': 4, 'y': 4}, 'VerticeSecondo': {'x': 4, 'y': 4}, 'VerticeTerzo': {'x': 4, 'y': 4}, 'VerticeQuarto': {'x': 4, 'y': 4}}
{'Nome': 3, 'Tipo': 'Rettangolo', 'VerticePrimo': {'x': 24, 'y': 12}, 'VerticeSecondo': {'x': 24, 'y': 12}, 'VerticeTerzo': {'x': 24, 'y': 12}, 'VerticeQuarto': {'x': 24, 'y': 12}}
{'Nome': 4, 'Tipo': 'Triangolo', 'VerticePrimo': {'x': 7, 'y': 8}, 'VerticeSecondo': {'x': 7, 'y': 8}, 'VerticeTerzo': {'x': 7, 'y': 8}}
{'Nome': 4, 'Tipo': 'Triangolo', 'VerticePrimo': {'x': 22, 'y': 14}, 'VerticeSecondo': {'x': 22, 'y': 14}, 'VerticeTerzo': {'x': 22, 'y': 14}}

Come mai i punti delle figure vengono traslati di valori diversi da 5 per le x e 2 per le y?

aggiunta: non sò perchè ma quando faccio invia dopo aver scritto il post, mi visualizza il primo print(listaFigureTraslate[i]) come print(listaFigureTraslate)

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte