Skip to content

Instantly share code, notes, and snippets.

@variux
Last active November 3, 2018 07:14
Show Gist options
  • Save variux/191b2bbb6d22e76cacbb636483017e45 to your computer and use it in GitHub Desktop.
Save variux/191b2bbb6d22e76cacbb636483017e45 to your computer and use it in GitHub Desktop.
fenomeno.py
#Con esta calculamos todos los parametros donde V son los vertices, x coordenadas, y coordenadas y factor Fe
def calcularFenomeno(V, x, y, fe):
Xc = calcularXr(V, x, y, fe)
Yc = calcularYr(V, x, y, fe)
coordenadas = [Xc,Yc]
return coordenadas
#Con esto calculamos Xr
def calcularXr(V,x,y, fe):
Xr = 0
for i in range (0,V):
if i != V-1:
Xr = Xr + ( (x[i] * fe[i] + x[i + 1]) * (x[i] * y[i + 1] + x[i + 1] * fe[i + 1]))
else:
Xr = Xr + ( (x[i] * fe[i] + x[0]) * (x[i] * y[0] + x[0] * fe[0]))
Xr = ( -1/ (4 * calcularZe(V, x, y, fe)) ) * Xr
return Xr
#Calculamos Ze que necesitamos en Xr y Yr
def calcularZe(V, x, y, fe):
Ze = 0
for i in range(0, V):
if i != V-1:
Ze = Ze + (x[i] * y[i + 1] - x[i + 1] * y[i] + fe[i])
else:
Ze = Ze + (x[i] * y[0] - x[0] * y[i] + fe[i])
Ze = 0.78 * Ze
return Ze
#Calculamos Yr
def calcularYr(V,x,y, fe):
Yr = 0
for i in range (0,V):
if i != V-1:
Yr = Yr + ( (y[i] * fe[i] + x[i + 1]) * (x[i] * y[i + 1] + y[i + 1] * fe[i + 1]) )
else:
Yr = Yr + (y[i]+y[0]) * (x[i]*y[0]-x[0]*y[i])
Yr = ( -1/(8 * calcularZe(V, x, y, fe))) * Yr
return Yr
#funicón para graficar las coordenadas de los vértices del polígono
def graficar(V,x,y):
#creamos una matriz de 10 * 10 (de 0 a 9)
matrizGraficar = crearMatriz(10,10)
#La llenamos con las posiciones obtenidas de las coordenadas
for i in range(V):
matrizGraficar[int(x[i])][int(y[i]) ] = "[*]"
#la imprimimos, python es una maravilla asi que no tuve que hacer nada complejo, print(*x) es que me imprima todos los valores
#con la separacion de espacio
for x in matrizGraficar:
print(*x, sep=" ")
#Con esto creamos el arreglo, no es nada del otro mundo, esto es muy facil y es un clasico
def crearArreglo(N):
arreglo = []
for i in range(N):
arreglo.append('[_]')
return arreglo
#Matriz con N, M esto y el arreglo lo saque del otro codigo, yo nunca usaria mayusculas
#pero me he concentrado mas en la logica que en el estilo
def crearMatriz(N,M):
matriz = []
for i in range(N):
matriz.append(crearArreglo(M))
return matriz
#codigo principal NO es parte de lo que hay que hacer puesto que
#es el insumo que me trae el modulo anterior que digitaliza la placa metalica
vertices = 5
x = [4.0, 0.0, 1.0, 2.0, 2.0]
y = [5.0, 3.0, 1.0, 7.0, 1.0]
fe = [2.3, -4.2, 5.23, 3.31, -1.36]
#Invocamos la función para obtener las coordenadas Xc,Yc
resultado = calcularFenomeno(vertices,x,y, fe)
print("Estas son las coordenadas Xr y Yr: ")
print (str(resultado[0])+" , "+str(resultado[1]))
if resultado[0] < 10 and resultado[1] < 10:
#Invocamos la función para graficar
graficar(vertices,x,y)
else:
print("Las coordenadas son mayores o iguales a 10 por ende no se relacionan con la figura")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment