Using only voting percentaje, there is no way to directly translate that into seats. With FPTP methods, you could theoretically get a party with 50.1% of the vote getting 100% of the seats and a party with 49.9% of the vote getting 0 seats. See this video for general information, and this other specifically about the UK.
Now, distribution of the votes have a tendency of repeating past patterns, so you could use those as a guide to extrapolate the distribution of those vote into constituencies.
A crude way would be using just the distribution of vote from the last elections. For example, imagine:
- 3 constituencies C1, C2, C3.
- party A got 1.000.000 votes last election: 600.000 at C1, 300.000 at C2, 100.000 at C3.
- party B got 500.000 votes last election: 100.000 at C1, 200.000 at C2, 200.000 at C3.
Now, the polls assume that for the next elections, both party A and B will get 750.000 votes. Then, simply by assuming that the distribution of each party votes between constituencies will be the same, you get a prevision that:
- party A will get 450.000 at C1, 225.000 at C2, 75.000 at C3
- party B will get 150.000 at C1, 300.000 at C2, 300.000 at C3
Of course, this is only the crudest of the analysis; for example, if party B got 100% at a constituency, an increase in the polls will not mean that they will increase the votes at that constituency.
A more complete analysis would take into account not only the last election but also the evolution of the last years, and the evolution other variables that are somewhat related to political opinions: age, education level, etc. For example, if a big company moved its factories to a small district, it could lead to urban young people moving in and result in more progresssist vote results. But such an analysis is nothing that can be explained in an answer like this.
The getting actually acurate results, you should not use aggregated voter intention, but voter intention in each constituency. Of course, this means that in order to get a meaningful sample of voters, you will need to poll more people and so the poll will be more expensive. A second best option would be to aggregate the constituencies in groups that are socioeconomically similar and have a history of similar voting results, and poll each group independently.