Last active
November 3, 2018 07:14
-
-
Save variux/191b2bbb6d22e76cacbb636483017e45 to your computer and use it in GitHub Desktop.
fenomeno.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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