Billiards - Predicting Optimal Trajectories?

  1. Is there a program code or game or applet that will allow me to predict..
    basically, the initial and standard state of the table. Say, I give it initial positions. Given the angle and magnitude of the cue ball, it should tell me what the final positions of each balls are.

    Which brings me to the main question, How can I predict a way the cue ball has to be shot (from the beginning of the game) to make all the 10 balls in the first shot?

    I don't believe that it's impossible. It can't be. I just can't find a program that does that. May be a Matlab code? A java applet would be best. :smile:
     
  2. jcsd
  3. I won't say it's impossible, but it's at least extremely improbable that, even in a simulation, you would be able to score all balls in the first shot. I don't think there is any way to calculate it before-hand, since you have to take into account the fact that the balls will hit each other too. You can predict the path of one ball, but as soon as another ball happens to cross the path of that ball, it's game over. You may be able to simulate it or something... I've no idea.
     
  4. There are far too many physical aspects to account for to make a realistic simulation. If you want to think of each collision as perfectly elastic, and make the balls perfectly rigid and unbreakable, then theoretically if you took some arbitrary angle for the cue and smashed it at an extremely high velocity the balls are bound to go into the holes.

    Of course this is just an exaggeration. Obviously there are limitations set by the physical boundaries of the balls and cue. I think coding these into a realistic simulation would be impossible and pointless for someone to do.

    Then again... you could always play yahoo pool over and over until you get it. :)
     
  5. I believe that. Only because its a problem of velocity lost due to friction.

    I don't think so. I would even believe that I might need a supercomputer to calculate it. But there has to be a way. I mean, the laws are used to make pool simulation games in the first place.

    Exactly. But, that's not what I'm looking for. I want to consider reasonable velocities (with friction).

    Impossible? Not sure. Pointless? Maybe, but I'm just trying to learn something.
    Yahoo pool? Let's just say I'm not the trial and error type. :)


    I think that the program code will basically have to iterate the whole play (till all the balls stop) at different angles. Yes it can take time. The only reason I'm looking for a ready made program is so I don't try to reinvent the wheel.
     
  6. Andrew Mason

    Andrew Mason 6,859
    Science Advisor
    Homework Helper

    The real problem is energy. On average a ball will lose 50% of its energy in each collision to the other ball. Then it loses a certain amount each time it hits a cushion. And it is always losing energy due to friction with the felt. In order to get all the balls to move for a long enough time in order to eventually find a pocket, you have to add an enormous amount of energy and this would probably cause all the balls to jump the table right at the start.

    AM
     
  7. Hurkyl

    Hurkyl 16,089
    Staff Emeritus
    Science Advisor
    Gold Member

    No it shouldn't. There are lots of very tiny errors involved that will quickly add up to make the results worthless -- things like positions of the balls, deformities in the table surface, imperfections in the balls, the specific shape of the head of the cue stick and how the chalk is arranged on it....
     
  8. Dare I say that this is "impossible to calculate". There is too many physical parameters that can't be modeled specifically. Only a probability function would give a close estimate.
     
  9. No, I'm pretty sure that's not how pool games are simulated. The word says it already, simulated!

    As soon as you hit a ball with the cue in the pool game, it obtains a velocity based on how hard you hit the ball and in which direction. Then the game simply positions the ball a bit further along the table every time frame. Also, it detects if the ball is colliding with the wall or other balls. If it is not, it moves forward, and if it is, it bounces back. It's crucial that the game does not know the exact trajectory of the ball beforehand! It simply checks its position every few milliseconds and makes decisions on what to do with the ball according to whether or not it has collided with something.

    This is different from calculating the final positions of all the balls before you even shot the ball. I'm still not saying it is impossible, but I wouldn't have a clue how to do it, even in principle.
     
Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook

Have something to add?
Similar discussions for: Billiards - Predicting Optimal Trajectories?
Loading...