Advertisement
Lulz-Tigre

MathsMathsMaths

Feb 27th, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. def cone_calculus(p, xp, yp, zp, xv, yv, zv):
  2.     cosinus = float(math.cos(float(math.radians(p))))
  3.     cosinus = cosinus * cosinus
  4.     a = (cosinus * (xv * xv)) + (cosinus * (yv * yv)) + (cosinus * (zv * zv)) - (zv * zv)
  5.     b = 2 * ((cosinus * xp * xv) + (cosinus * yp * yv) + (cosinus * zp * zv) - (zp * zv))
  6.     c = (cosinus * (xp * xp)) + (cosinus * (yp * yp)) + (cosinus * (zp * zp)) - (zp * zp)
  7.     discriminant = (b * b) - (4 * a * c)
  8.     if (discriminant == 0):
  9.         lambada = (-b) / (2 * a)
  10.         x = xp + (lambada * xv)
  11.         y = yp + (lambada * yv)
  12.         z = zp + (lambada * zv)
  13.         cone_print(p, xp, yp, zp, xv, yv, zv)
  14.         print '1 intersection point :'
  15.         print '('+str(my_round(float(x)))+',', my_round(float(y))+',', my_round(float(z))+')'
  16.     if (discriminant < 0):
  17.         cone_print(p, xp, yp, zp, xv, yv, zv)
  18.         print 'No intersection point.'
  19.     if (discriminant > 0):
  20.         lambada = (-b + math.sqrt(discriminant)) / (2 * a)
  21.         lambada2 = (-b - math.sqrt(discriminant)) / (2 * a)
  22.         x = xp + (lambada * xv)
  23.         y = yp + (lambada * yv)
  24.         z = zp + (lambada * zv)
  25.         x2 = xp + (lambada2 * xv)
  26.         y2 = yp + (lambada2 * yv)
  27.         z2 = zp + (lambada2 * zv)
  28.         cone_print(p, xp, yp, zp, xv, yv, zv)
  29.         print '2 intersection points :'
  30.         print '('+str(my_round(float(x)))+',', my_round(float(y))+',', my_round(float(z))+')'
  31.         print '('+str(my_round(float(x2)))+',', my_round(float(y2))+',', my_round(float(z2))+'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement