^ so what's the problem?
You can get the two positions fine right? The center of rotation and the end of the barrel?
So... if you magnify the vector by some large number, everything will work out.
IE:
P1 is the center of rotation of the camera
P2 is at the end of the cannon
line P1 P3 is a line that starts at P1, intersects with P2, and then keeps going a ways
P3=(P2-P1)*100+P1
or in other words:
p3.x=(p2.x-p1.x)*100+p1.x
p3.y=(p2.y-p1.y)*100+p1.y
p3.z=(p2.z-p1.z)*100+p1.z

Why does blue text appear every time you are near?