# Making a formula that finds the horizontal and vertical distance between two points that change with a new angle.

I am making a Scratch 3.0 game. The shooter sprite is holding a gun slightly off-centre (see images), and I need the bullet to go to the end of the barrel of the gun before travelling forward (as so it would appear the bullet it leaving the gun). The issue is, to do this, I need to find the X and Y distance of the end of the barrel from the centre of the shooter sprite (Scratch doesn't let you use diagonal distances 😡). The X and Y distances change as the sprite rotates.

I know if the shooter sprite is facing 90º (right angle), the X distance to the gun is 105 pixels, and the Y distance is 45 pixels.

The computer always knows what direction the shooter sprite is facing.

What about the distances for all the other angles the shooter sprite is facing? Do I need a special formula?

Sounds like the length of the gun is $$L = \sqrt{105^2+45^2} = 15 \sqrt{58} \approx 114.2366 \text{ pixels}$$ and now if you are pointing to an angle $$a$$, your distances are $$X = L\cos a \quad \text{and} \quad Y = L\sin a.$$
• @KieranRyan at $90^\circ$ there should be no horizontal distance, just pure vertical, no? – gt6989b Apr 24 at 17:35