I come to this shitty site from time to time, so Im going to put my bit here but dont expect further explanations.
Basically, the reason you are having so much trouble with this is because this is not a very treated topic nowadays (thanks AI and big data) and there is not an "exact formula" (or at least, im too dumb to realize it exist). Its all about maths, specilly about trigonometry and proyections.
So, lets say we have the YZ plane, and that the proyection point (our eye) is (0,0,0). Lets say the proyection plane (the screen) is right to the YZ plane is at distance 1 from origin, that distance is usually called focal distance. Also, assume that z>=0. So, if we have a point P=(x,y,z) anywere behind our proyection plane, that is to say, any point in our 3D space with z>1, the proyection of that point in our proyections plane will be (u,v)=(x/z,y/z) (if you dont see why search what the tangent of a given angle is). A more general situation can be seen in the image related.
To clarify, the point (u,v) will be a point in your 2D screen, just what you want. I dont consider this (u,v)=(x/z,y/z) "a formula" but is the basic logic in wich you can construct all the rest.
I dont know how much did you investigate about this, but Im somehow suprised that u didnt come across the mythical "Donut code". There is a page written by the original creator of the code (i think) that explains how he did this code. The URL is
https://www.a1k0n.net/2011/07/20/donut-math.html. Its great to get a better understanding of the problem and also the result is pretty cool, so you should implement that code in whatever languaje you are using and try to undertand it.
It would be a good idea to search for a book in the topic, wich is 3D perspective rendering. There should be a good amount the information on the Internet too. Dont worry if the info is old, as I said, this topic is old fashioned and rather hard.