Translate 3D location to 2D location without HUD class for minimap


I am making a minimap without using HUD class or SceneCapture2D using UMG.

I have a spherical trace which collects the enemy locations and rotations within a set range.

For each of the enemys in range I obviously want to show a marker on the 2D map so I spawn a widget for each result. Then I want to set the position. I have checked dozens of tutorials and vector maths tutorials but I can’t seem to get the right results with all of my experiments.

My Canvas panel is 1024x1024 with the anchor at [0.5,0.5]. The co-ordinates on the panel equate to -512,-512] to [512,512].

The player ship is always in the centre of the minimap and each Enemy blip needs to rotate with and around the player.

The closest I have gotten so far is still not accurate.

Could a vector maths guru maybe point me in the right direction if you excuse the pun?