# -*- coding: cp1252 -*-
from math import sqrt, acos, pi
opcion = 0
x1 = ''
x2 = ''
while opcion != '9':
print 'Escoge una opción:'
print '1) Introducir el primer vector'
print '2) Introducir el segundo vector'
print '3) Calcular la suma'
print '4) Calcular la diferencia'
print '5) Calcular el producto escalar'
print '6) Calcular el producto vectorial'
print '7) Calcular el ángulo (en grados) entre ellos'
print '8) Calcular la longitud'
print '9) Finalizar'
print ''
opcion = raw_input('Teclea una opción y pulsa "Entrar": ')
if opcion == '1':
x1 = float(raw_input('Introduce un valor para x: '))
y1 = float(raw_input('Introduce un valor para y: '))
z1 = float(raw_input('Introduce un valor para z: '))
elif opcion == '2':
x2 = float(raw_input('Introduce un valor para x: '))
y2 = float(raw_input('Introduce un valor para y: '))
z2 = float(raw_input('Introduce un valor para z: '))
elif opcion == '3':
if x1 == '' and x2 == '':
print'Debes introducir primero el primer vector y el segundo vector.'
elif x1 == '':
print'Debes introducir antes el primer vector.'
elif x2 == '':
print'Debes introducir antes el segundo vector.'
else:
print (x1 + x2), (y1 + y2), (z1 + z2)
elif opcion == '4':
if x1 == '' and x2 == '':
print'Debes introducir primero el primer vector y el segundo vector.'
elif x1 == '':
print'Debes introducir antes el primer vector.'
elif x2 == '':
print'Debes introducir antes el segundo vector.'
else:
while True:
print'''1) Primer vector menos segundo vector
2) Segundo vector menos primer vector'''
order = raw_input('Escoge el order de los operandos: ')
if order == '1':
print (x1 - x2), (y1 - y2), (z1 - z2)
break
elif order == '2':
print (x2 - x1), (y2 - y1), (z2 - z1)
break
else:
print'Por favor, introduce una de las dos opciones.'
elif opcion == '5':
if x1 == '' and x2 == '':
print'Debes introducir primero el primer vector y el segundo vector.'
elif x1 == '':
print'Debes introducir antes el primer vector.'
elif x2 == '':
print'Debes introducir antes el segundo vector.'
else:
print (x1*x2)+(y1*y2)+(z1*z2)
elif opcion == '6':
if x1 == '' and x2 == '':
print'Debes introducir primero el primer vector y el segundo vector.'
elif x1 == '':
print'Debes introducir antes el primer vector.'
elif x2 == '':
print'Debes introducir antes el segundo vector.'
else:
while True:
print'''1) Primer vector primero
2) Segundo vector primero'''
order = raw_input('Escoge el order de los operandos: ')
if order == '1':
print y1*z2 - z1*y2, z1*x2 - x1*z2, x1*y2-y1*x2
break
elif order == '2':
print y2*z1 - z2*y1, z2*x1 - x2*z1, x2*y1-y2*x1
break
else:
print'Por favor, introduce una de las dos opciones.'
elif opcion == '7':
if x1 == '' and x2 == '':
print'Debes introducir primero el primer vector y el segundo vector.'
elif x1 == '':
print'Debes introducir antes el primer vector.'
elif x2 == '':
print'Debes introducir antes el segundo vector.'
else:
print 180/pi * acos((x1*x2 + y1*y2 +z1*z2)/sqrt(x1**2+y1**2+z1**2)*sqrt(x2**2+y2**2+z2**2))
elif opcion == '8':
while True:
print'''1) Primer vector
2) Segundo vector'''
order = raw_input('¿De cuál vector quieres saber la longitud? : ')
if order == '1':
print (sqrt(x1**2+y1**2+z1**2))
break
elif order == '2':
print (sqrt(x2**2+y2**2+z2**2))
break
else:
print'Por favor, introduce una de las dos opciones.'
else:
if not opcion == '9':
print'Por favor, introduce una de las 9 opciones disponibles.'
print''