Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def cone_calculus(p, xp, yp, zp, xv, yv, zv):
- cosinus = float(math.cos(float(math.radians(p))))
- cosinus = cosinus * cosinus
- a = (cosinus * (xv * xv)) + (cosinus * (yv * yv)) + (cosinus * (zv * zv)) - (zv * zv)
- b = 2 * ((cosinus * xp * xv) + (cosinus * yp * yv) + (cosinus * zp * zv) - (zp * zv))
- c = (cosinus * (xp * xp)) + (cosinus * (yp * yp)) + (cosinus * (zp * zp)) - (zp * zp)
- discriminant = (b * b) - (4 * a * c)
- if (discriminant == 0):
- lambada = (-b) / (2 * a)
- x = xp + (lambada * xv)
- y = yp + (lambada * yv)
- z = zp + (lambada * zv)
- cone_print(p, xp, yp, zp, xv, yv, zv)
- print '1 intersection point :'
- print '('+str(my_round(float(x)))+',', my_round(float(y))+',', my_round(float(z))+')'
- if (discriminant < 0):
- cone_print(p, xp, yp, zp, xv, yv, zv)
- print 'No intersection point.'
- if (discriminant > 0):
- lambada = (-b + math.sqrt(discriminant)) / (2 * a)
- lambada2 = (-b - math.sqrt(discriminant)) / (2 * a)
- x = xp + (lambada * xv)
- y = yp + (lambada * yv)
- z = zp + (lambada * zv)
- x2 = xp + (lambada2 * xv)
- y2 = yp + (lambada2 * yv)
- z2 = zp + (lambada2 * zv)
- cone_print(p, xp, yp, zp, xv, yv, zv)
- print '2 intersection points :'
- print '('+str(my_round(float(x)))+',', my_round(float(y))+',', my_round(float(z))+')'
- print '('+str(my_round(float(x2)))+',', my_round(float(y2))+',', my_round(float(z2))+'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement