Python - programa para calcular volumenes de paralelepipedos

 
Vista:

programa para calcular volumenes de paralelepipedos

Publicado por alberto (6 intervenciones) el 14/04/2021 10:55:21
Muy buenas a todos, hace poco me compre una calculadora programable que va con python, pero yo no se programar. Me gustaria poder tener un programa que me calcule el volumen de un paralelepipedo sabiendo 4 de sus vertices
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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa para calcular volumenes de paralelepipedos

Publicado por joel (901 intervenciones) el 14/04/2021 16:16:41
Hola Alberto, si sabes la formula matemática para hacer ese calculo puedo intentar ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa para calcular volumenes de paralelepipedos

Publicado por Alberto (6 intervenciones) el 14/04/2021 16:36:15
mas que una formula seria resolver un determinante.
Voy a tener 4 puntos del espacio A B C D. Con A realizo 3 vectores AB, AC y AD ( eso se hace restando los puntos, es decir, el vector AB sera (Xb-Xa, Yb- Ya, Zb-Za)).
Esos tres vectores se meten en una matriz y se realiza el determinante
Los comandos con la que opèra mi calculadora son : if, if-else, if-elif,for,gor-range y while.
Espero que me puedas ayudar, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa para calcular volumenes de paralelepipedos

Publicado por tincopasan (1082 intervenciones) el 14/04/2021 20:13:40
si te fijas los vértices van a tener valores de tuplas, ej:
A = (2,-1,3) B = (2,2,-1) C = 5.-1,-1) D = (2,3,0)

al realizar la resta de los vectores te quedan 3 tuplas o listas como vos quieras, ej:
AD = (0,4,-3)
AB = (0,3,-4)
AC = (3,0.-4)

para hallar la determinante por el método de Sarrus:

0 4 -3 0 4
0 3 -4 0 3
3 0 -4 3 0

esto es como una matriz de 15 elementos
ahora es solo multiplicar las diagonales
para ello:

1
2
3
4
5
6
7
8
9
10
11
12
13
M=[[0,4,-3,0,4],[0,3,-4,0,3],[3,0,-4,3,0]]
 
D1 = M[0][0] * M[1][1] * M[2][2]
D2 = M[0][1] * M[1][2] * M[2][3]
D3 = M[0][2] * M[1][3] * M[2][4] #las 3 primeras incrementa desde 0,0
 
D4 = M[0][2] * M[1][1] * M[2][0]
D5 = M[0][3] * M[1][2] * M[2][1]
D6 = M[0][4] * M[1][3] * M[2][2] #las 3 últimas incerementan desde 0,2
 
Det= (D1+D2+D3)-(D4+D5+D6)
 
print(abs(Det))

lo único es saber si te permite usar la función abs() para que devuelva el valor absoluto que será el volumen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa para calcular volumenes de paralelepipedos

Publicado por Alberto (6 intervenciones) el 14/04/2021 20:18:45
No no esta esa funcion, pero muchisimas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa para calcular volumenes de paralelepipedos

Publicado por tincopasan (1082 intervenciones) el 14/04/2021 20:21:40
bueno, busca una declaración de la función que sirva y la adaptamos, ¿probaste el resultado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa para calcular volumenes de paralelepipedos

Publicado por Alberto (6 intervenciones) el 14/04/2021 20:37:55
Una cosa este progrma esta hecho para que yo pueda poner el valor que yo quiera no?
pd si esta la funcion abs
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa para calcular volumenes de paralelepipedos

Publicado por Alberto (6 intervenciones) el 14/04/2021 21:08:06
M=[]

D1 = M[0][0] * M[1][1] * M[2][2]
D2 = M[0][1] * M[1][2] * M[2][3]
D3 = M[0][2] * M[1][3] * M[2][4] #las 3 primeras incrementa desde 0,0

D4 = M[0][2] * M[1][1] * M[2][0]
D5 = M[0][3] * M[1][2] * M[2][1]
D6 = M[0][4] * M[1][3] * M[2][2] #las 3 últimas incerementan desde 0,2

Det= (D1+D2+D3)-(D4+D5+D6)

print(abs(Det))
Esto lo he copiado tal cual y me sale 2 errores uno de ellos pone
line3, in <module>
y el otro pone
Indexerror:list index out of range
Como lo puedo solucionar y como hago para poner yo los valores?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa para calcular volumenes de paralelepipedos

Publicado por tincopasan (1082 intervenciones) el 15/04/2021 05:00:30
hay varios problemas:
1) no tenés la menor idea de python
2) no me voy a preocupar sino te funciona en la calculadora, solo te muestro como se resuelve y eso porque no es un problema común
3) los valores de los 4 vertices se deben escribir los 3 números separados por espacios ej: 2 -1 3
3) este código es funcional en cualquier idle de python

código completo:

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
verticeA = [int(x) for x in input("Ingrese los 3 valores del vértice A dejando un espacio entre ellos: ").split()]
verticeB = [int(x) for x in input("Ingrese los 3 valores del vértice B dejando un espacio entre ellos: ").split()]
verticeC = [int(x) for x in input("Ingrese los 3 valores del vértice C dejando un espacio entre ellos: ").split()]
verticeD = [int(x) for x in input("Ingrese los 3 valores del vértice D dejando un espacio entre ellos: ").split()]
 
VectAD = [verticeD[i]-verticeA[i] for i in range(min(len(verticeD), len(verticeA)))]
VectAB = [verticeB[i]-verticeA[i] for i in range(min(len(verticeB), len(verticeA)))]
VectAC = [verticeC[i]-verticeA[i] for i in range(min(len(verticeC), len(verticeA)))]
 
Vect1 = VectAD
Vect1.extend(VectAD[0:2])
Vect2 = VectAB
Vect2.extend(VectAB[0:2])
Vect3 = VectAC
Vect3.extend(VectAC[0:2])
 
M=[]
M.append(Vect1)
M.append(Vect2)
M.append(Vect3)
 
D1 = M[0][0] * M[1][1] * M[2][2]
D2 = M[0][1] * M[1][2] * M[2][3]
D3 = M[0][2] * M[1][3] * M[2][4] #las 3 primeras incrementa desde 0,0
 
D4 = M[0][2] * M[1][1] * M[2][0]
D5 = M[0][3] * M[1][2] * M[2][1]
D6 = M[0][4] * M[1][3] * M[2][2] #las 3 últimas incerementan desde 0,2
 
Det= (D1+D2+D3)-(D4+D5+D6)
 
print(f"El volumen es de {abs(Det)} u3")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar