Python - Mi programa con Turtle() ¿la mejor opción?

 
Vista:
Imágen de perfil de Drowels
Val: 53
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Mi programa con Turtle() ¿la mejor opción?

Publicado por Drowels (21 intervenciones) el 10/08/2019 01:01:09
Hola compis,

He creado un programa para unas labores del trabajo, para automatizar estás. El programa este simple cumple el cometido, por lo que está bien, es efectivo y sencillo para lo que se requiere.

Lo que está programado con Turtle(), con opciones de Turtle() y no se si es la mejor manera para conseguir esto que necesito, o si Turtle() es más para el aprendizaje de niños. No se con que otra librería se debería hacer o quedaría mejor.
Aparte que Turtle() es muy lento.

¿Creéis que es la mejor solución para una aplicación como esta?

Muchas gracia.

Copio y pergo el código diseñado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
from turtle import * #Importar todo con *
 
pantalla = Screen()
 
#Ventana emergente que nos pide información. (Titulo ventama, mensaje, valor defecto, valor min, valos max)
# 360 / 24 tornillos = 15 entre tornillos
tornillos = numinput("Espacio entre tornillos", "¿Cuantos espacios entre tornillos tienes desde el tornillo de proa hasta la marca 0 del transductor?", 0, 0, 24)
 
#alineamiento = tornillos - 1 huecos entre tornillos + 15 grados, separación entre tornillos
alineamiento = float(tornillos * 15)
 
pantalla.setup(1024, 768) #Tamaño ventana
pantalla.screensize(1000, 744) #Tamaño lienzo
title("Radio principal 0º") #Título ventana
 
tor = Turtle()
tor.hideturtle() #Ocultamos la tortuga
tor.speed(0) #Velocidad tortuga. 1 min, 10 max, 0 directo
 
#Si tenemos 180º o menos, print valos alineamiento
#Si tenemos 180º o mas, restas 360 para valor en negativo.
if alineamiento <= 180:
	tor.penup()
	tor.goto(0,350)
	tor.write("El valor de alineamiento es de " + str(alineamiento) + "º", False, "center", ("arial", 20, "bold italic"))
else:
	tor.penup()
	tor.goto(0,350)
	tor.write("El valor de alineamiento es de " + str(alineamiento - 360) + "º", False, "center", ("arial", 20, "bold italic"))
 
tor.goto(0,325)
tor.write("Has introducido " + str(tornillos) + " huecos", False, "center", ("arial", 14, "bold italic"))
 
#Dibujo del círculo
tor.penup()
tor.goto(0,-285)
tor.pendown()
tor.pensize(4) #Grosor del trazo
tor.circle(285)
tor.penup()
tor.goto(0,0)
 
#Punto central
tor.pendown()
tor.dot(5) #Creamos punto central
tor.penup()
 
#Flecha de proa
tor.pensize(1)
tor.goto(6.5,302)
tor.pendown()
tor.fillcolor()
tor.begin_fill()
tor.left(120)
tor.forward(15)
tor.left(120)
tor.forward(15)
tor.left(120)
tor.forward(15)
tor.end_fill()
tor.penup()
tor.goto(30,302)
tor.write("Recto", False, "center", ("arial", 8, "bold italic"))
 
#Indicamos grados inicio dibujo
#Para el 0 a proa se requiere valor 135
#Restamos 105 para la posición de las placas en domo
tor.setheading(120-alineamiento)
 
#Radios referente a tarjetas
tor.pensize(2)
for i in range(0,12): #Cuenta en rango de 0 hasta 12
	if i == 0:
		tor.pencolor("red")
		tor.pensize(2)
		tor.goto(0,0) #Posicionar lapiz en posicion 
		tor.right(30) #Rota de 30º
		tor.pendown() #Bajar lapiz
		tor.forward(300) #Avanza 284px
		tor.pencolor("black")
		tor.penup() #Levanta lapiz
		tor.right(330) #Rota 330º
		tor.forward(-100) #Retrocede -25px lapiz levantado	
		tor.write(11-i, True, "left", ("arial", 15, "bold italic")) #Autoincrementa y estilo de fuente
		tor.right(30) #Rota 30º
		i = i + 1 #Autoincrementa en 1
	else:
		tor.pencolor("black")
		tor.pensize(2)
		tor.goto(0,0) #Posicionar lapiz en posicion 
		tor.right(30) #Rota de 30º
		tor.pendown() #Bajar lapiz
		tor.forward(284) #Avanza 284px
		tor.penup() #Levanta lapiz
		tor.right(330) #Rota 330º
		tor.forward(-100) #Retrocede -25px lapiz levantado	
		tor.write(11-i, True, "left", ("arial", 15, "bold italic")) #Autoincrementa y estilo de fuente
		tor.right(30) #Rota 30º
		i = i + 1 #Autoincrementa en 1
 
tor.goto(250, 200)
tor.write("Vista de ruedas y bomba ", False, "left", ("arial", 8, "bold italic"))
tor.goto(250, 188)
tor.write("de la rueda motriz.", False, "left", ("arial", 8, "bold italic"))
tor.goto(0,-320)
tor.write("Para calcular el alineamiento manualmente se realiza contando los espacios entre tornillos y multiplicando estos por 15º (360º/24 tornillos=15º).", False, "center", ("arial", 8, "bold italic"))
tor.goto(0,-340)
tor.write("Si el 0º de la rueda está en la derecha serán grados positivos. Solo hasta 180º. Se contará en sentido horario.", False, "center", ("arial", 8, "bold italic"))
tor.goto(0,-360)
tor.write("Si el 0º de la rueda está abajo serán grados negativos. Solo hasta 180º. Se contará en sentido anti horario.", False, "center", ("arial", 8, "bold italic"))
pantalla.exitonclick()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder