英文台球发展史

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了英文台球发展史相关的知识,希望对你有一定的参考价值。

着急啊 明天上学要做PPT 想整个台球 还不会英文!!!!!!!!!
嘎嘎 帮帮忙

Origin of biliards

台球的起源

Billiards sports have already had a history of nearly 600 years. Criticize of a text then according to writer , Hundley of billiards historian gram, world 1st appearance, billiards of desk in A.D. 1400, the ball desk at that time had no bag , there are only arched doors or the post door. People in the center turn on one round hole in desk later on, turn on four holes in 4 of desk, the increase of the hole excited playing with the ball interest of people at the same time , until opening six round holes in the desk, is it fall bags of type embryonic form , billiards of table today to develop into just.台球运动已有近600年的历史了。

据作家、台球史学家亨德利克斯考证,世界第1张台球桌的出现是在公元1400年,当时的球桌无袋,只有拱门或柱门。后来人们在桌子中心开了一个圆洞,继而又在桌子四角开了四个洞,洞的增加同时也激发了人们的玩球兴趣,直到在桌子开了六个圆洞,才演变成了今天落袋式台球球台的雏形。

The following are several kinds of statements about the origin of the billiards 关于台球的起源有如下几种说法

(a)Originated from France. U.S.A. humanity modest to say law Wang Charlie period of seven generations among work of him 1904, have billiards sports already. The name of the billiards came from French, France already presented " billiards " in the 15th century, word " BILLE " in Russian ( The billiards) come from French.

(a)起源于法国。1904年美国人道逊在他的著作中说,法王查理七世时期,已经有台球运动了。台球的名称来自法语,早在15世纪法国已出现了“台球”一词,俄语中的单词"BILLE"(台球)就是来自于法语

(b)Originated from China. Department , poet of British , describe history about billiards among books written in 1674. Mention in the book when the billiards are fought east by the Crusades , from a kind of old game taken to Europe in the east, and then improved by Italy and Spain.

(b)起源于中国.英国诗人科顿1674年所著之书中,描写了有关台球的历史.书中谈到台球是十字军东征时,从东方带到欧洲的一种古老的游戏,后经意大利和西班牙改进而成。

(c)Originated from Britain. Englishmen like this sport very much, in December of 1836, the first billiard ball desk is set up in London, the first billiard ball hall runs in London afterwards, the first billiards association is established spontaneously in Britain too.

(c)起源于英国。英国人很喜欢这一运动,1836年12月,第一张台球桌在伦敦设置,第一家台球馆随后在伦敦开办,第一个台球协会也是在英国自发成立。

Rise of snooker biliards

Snooker of billiards can trace back to A.D. 1875, by based in India one Neville, officer of Britain,. Bao Si. Zhang Bolun (Neville Bowes Chamberlain ), and gangs of companions of him invent at first.

斯诺克台球的兴起可以追溯到公元1875年,是由驻扎在印度的一位英国军官内维尔.鲍斯.张伯伦(Neville Bowes Chamberlain)和他的一帮战友们首先发 明的。

Before the snooker ball is produced , billiard ball game has existed for a long time, and there are many kinds of playing methods. Among them , have one name playing method on " black ball enter bag ", in Neville. Bao Si. Very popular in the army which Zhang Bolun belongs to. This kind of playing method uses a white ball, 15 red balls and a black ball. Have one day, Neville. Bao Si. Zhang Bolun and his companions think the playing method that " the black ball is entered bag " is too simple , dull, determine to increase the yellow, green, pink three colorful balls go up. Soon , it is not enough to make again , combine with the brown chromosphere and blue chromosphere. In this way, form the snooker billiards of 22 balls that have already prevailed in the whole world so far.

在斯诺克球产生之前,台球游戏早就存在,而且有多 种玩法。其中,有一种叫做“黑球入袋”(Black Pool)的玩法,在内维尔.鲍斯.张伯伦所在的军队中非常流行。这种玩法用1个白球,15个红球和1个黑球。有一天,内维尔.鲍斯.张伯伦和他的战友们觉得“黑球入袋”的玩法太简单、乏味,便决定增加黄色、绿色、粉色三个彩球上去。不久,又赚不够,再加上了棕色球和蓝色球。这样,便形成了至今已风行全球的22个球的斯诺克台球。

It is said, the name of the snooker billiards, with Neville too. Bao Si. Zhang Bolun has something to do. One day, Neville. Bao Si. Between Zhang Bolun and one partner at by 22 billiards of ball, they of new invention this kind of playing, a very easy goal, the other side has not hit . It is the snooker that he banters the other side smoothly (snooker is that the prevalence to the new students of grade one was called the law in the local military courtyard at that time ). He ask smoothly so, remind everybody , make everybody realize, as to such new billiards playing method, everybody new hand, snooker. Then, the call of the snooker begins to be popular and fixing.

据说,斯诺克台球的命名也与内维尔.鲍斯.张伯伦有关。有一次,内维尔.鲍斯.张伯伦同一个伙伴在打这种由他们新发明的22个球的台球时,一个很容易的进球,对方没有打中。他便顺口戏谑对方是斯诺克(斯诺克是那时当地军事院里对一年级新生的流行称法)。他这么顺口一叫,提醒了大家,使大家意识到,对于这种新的台球玩法,大家都是新手,都是斯诺克。于是,斯诺克的叫法便开始流行并固定下来。

Snow ball billiards pass back into homeland of billiards soon ----Britain. However, were occupying the leading status in the Britain traditional BILLIARDS billiards at that time and considered to be the orthodox and scientific playing method. The snooker billiards can only be a kind of folk amusement ways for the moment, it is difficult to mount the hall of the elegance. Under the unremitting efforts of snooker fans , in 1916 , held the England amateurish snooker championship for the first time. However, until the snooker headliner Joe appeared in the twenties. Davies (Joe Davis ), snooker billiards do not begin in prevailing Britain really.

斯诺球台球很快便被传回了台球的故乡----英国。但是,当时在英国传统的BILLIARDS台球占据着主导地位,被认为是正统的和科学的玩法。斯诺克台球一时只能是民间的一种娱乐方式,难于登上大雅之堂。 在斯诺克爱好者们坚持不懈的努力下,于1916年,首次举办了英格兰业余斯诺克锦标赛。然而,一直到20年代出现了斯诺克大明星乔.戴维斯(Joe Davis),斯诺克台球才真正开始在英国流行。

Joe. Davies is that the first realizes the snooker player who controls the importance of returning one of white ball. He is it control to return location white ball to utilize, create continuous goal chance , break single pole pole receive the highest rating the record while being numerous. Before this, make the general concept of the snooker, it is the ball that can obviously be entered that is thrown into bag , then play a safe ball , wait for the goal chance of next time. So single pole at that time score 20 degrees or 30 degrees , think to be pretty good. However, Joe. But Davies has improved this horizontal standard by one step greatly .

乔.戴维斯是第一位认识到控制白球回位的重要性的斯诺克选手.他利用控制白球的回位,创造连续进球机会,多次刷新单杆杆得分最高记录。在此之前,打斯诺克的一般概念,是将明显可以进的球打进袋,然后打一个安全球,等待下次进球机会。所以,当时单杆进球20度或者30度,已被认为相当不错。然而,乔.戴维斯却将这个水平标准给大大地提高了一步。

Joe. Davies\' consummate skill has attracted large quantities of audiences. 1926, yes Joe. Under the efforts of Davies and his friends, billiards association and management club (BA&CC ) agreed and succeeded in holding the first snooker billiards world professional championship in history in London at last, have established the position of the billiards circle of the snooker. Through the struggle of six months, totally in everybody\'s expectation too, Joe. Davies has captured the champion of first world professional championship with the absolute predominance . In the cheers of a scene of victories, the first dazzling and brilliant snooker star has emerged. Joe. Davies has been taking champion\'s throne steadily all the time in the world professional championship that is held every year , until retire in 1946. In all formal matches, Joe. Davies has not failed . And, each finals result, all between champion and runner-up.

乔.戴维斯的精湛技艺吸引了大批观众。1926年,在乔.戴维斯和他的朋友们的努力下,台球协会和管理俱乐部(BA&CC)终于同意并且成功地在伦敦举办了历史上首届斯诺克台球世界职业锦标赛,奠定了斯诺克的台球界的地位。经过六个月的奋战,也完全在大家的预料之中,乔.戴维斯以绝对优势夺得了首届世界职业锦标赛的冠军。在一片胜利的欢呼声中,诞生了第一颗耀眼夺目的斯诺克明星。乔.戴维斯在以后每年举办的世界职业锦标赛中,一直稳坐冠军宝座,直到1946年退休为止。在所有的正式比赛中,乔.戴维斯没有输过一场。而且,每次决赛结果,冠亚军之间都差距悬殊。现在,世界前100名职业选手之间。己不再存在如此明显差距了。乔.戴维斯真正可谓是斯诺克历史上的一位奇才。

Until 1969, with the birth of the color TV, the snooker billiards obtained new lives again, and grow vigorously . At that time, Britain BBC TV station was developing in order to cater to the sports program that the color TV is being broadcast, and Snow speech grams of billiards with had by it abundant color, obvious to can give play to sports program , color TV of advantage most, get form , BBC of TV station look at , quickly , BBC TV station introduce match special column , snooker of billiards naturally, and broadcast live some snooker matches. The billiards star of the snooker has become widely known personages soon. Thereupon , a generation of new professional players of snooker have emerged too.

直到1969年,随着彩色电视的诞生,斯诺克台球再次获得新生,并且得到蓬勃发展。当时,英国BBC电视台正在开发以迎合彩色电视播放的体育节目,而斯诺言克台球以其所具有的丰富的色彩,显而易见是最能发挥彩色电视优势的体育节目,理所当然得到了BBC电视台的表睐,很快,BBC电视台推出了斯诺克台球的比赛专栏,并且直播一些斯诺克比赛实况。斯诺克台球明星很快就成为了家喻户晓的人物。随之,也诞生了一代新的斯诺克职业手。

Now, the snooker billiards widely launch each corner of the earth ownly. Asia and Europe are the area with the fastest developing speed, in 1988-1989, two world ranking had a match and is held in Canada and France respectively for the first time. Then, some world ranking is it visit and hold in Hong Kong , Bangkok , Du in succession to have a match. The Asian Games in 1988, the billiards will be classified as the gold medal project. Today , the snooker billiards become an international sports activity that the people of various countries like ownly.

现在,斯诺克台球己广泛地开展了地球的各个角落。亚洲同欧洲是发展最快的地区,1988—1989年,两个世界排名赛首次分别在加拿大和法国举行。接着,一些世界排名赛又相继在香港、曼谷、杜拜举办。1988年的亚运会,台球将被列为金牌项目。今日,斯诺克台球己成为各国人民喜爱的一项国际性体育运动。

希望满意O(∩_∩)O哈!
另附资料:
The Colorful History of Billiards
台球的沿革

Anyone who refuses to leave prison simply because they are having too much fun playing billiards would be considered something more than just a diehard fan. Yet that is exactly what a Captain Mingaud did during the French Revolution. Granted, Mingaud was not only playing billiards, he was busy revolutionizing the game.

Though billiards had already been popular for more than 100 years at that time, Mingaud was the first person to round the end of a pool cue with a file and apply a leather tip to it. After prison, Mingaud promptly proved his invention's superiority over its flat, club-like predecessor in exhibitions throughout France. What the captain had developed was essentially the cue in use today, but the game he generated interest in did not involve shooting balls into pockets.

Pocket billiards such as modern-day pool and snooker were around, but they were considered to be the ill-bred cousins of carom billiards, which used a pocketless table. The name pool was born during the 1840s when billiards was closely identified with gambling parlors, or "pool parlors" in the lexicon of the day. The name stuck, and with more than 40 million people playing in America alone last year, so has the game.

Despite its universal popularity and frequent airtime on ESPN with professionally organized tournaments, billiards has rarely enjoyed universal respect.

Before hitting America, billiards already had a spotty history thanks to the likes of hustlers such as Englishman Jack Carr. Carr, the first person to put chalk on his cue tip, made a fortune peddling his magic "twisting chalk" around France in the 1820s. The "magic" was actually in Carr's wrist; he was the first player to apply spin to a billiards ball, and the term "English" is still used to denote this move.

In America, billiards had a questionable reputation because of its association with gambling. The 20-year rivalry of American pool masters Michael Phelan and Dudley Kavanagh in the late 19th century, however, attracted attention and respect as tournaments became standing-room-only tuxedo affairs. Ironically, the two also started a tradition of conflicting associations governing the game, which now makes all titles suspect, and the Olympics an impossible dream.

Fortunately, legitimacy and success are not invariably linked. When The Hustler, a 1961 movie starring Paul Newman and Jackie Gleason, glamorized the shady underworld of pool sharks, business boomed.

Coin-operated pool tables were born just in time to meet the rising demand. Initially found only in bars and bowling alleys, the new, smaller tables have taken center stage at packed pool halls from Boston to Beijing.

要是有人因为太爱打台球而不肯出狱,那他们绝对不只是球痴而已。而在法国大革命时期,敏高德上尉正是一个顽固的台球迷。他 不仅玩台球,还忙着改革这项运动。

尽管当时,台球已盛行了百余年,而敏高德却是第一个使用锉刀把球杆尾端磨圆,并用皮子包上的人。出狱后,在法 国的多次展览会上,敏高德很快就证明他的新发明比原先那种平头像球棍的球杆好用。上尉发明的球杆沿用至今,然而当时他引发兴趣的游戏,还未发展到将台球击进球袋的阶段。

“球袋台球”(pocket billiards)如花式、英式台球在当时比比皆是,但却被视为是“教养不良的兄弟台球”(carom billiards),它们的球台没有球袋。“弹子”(pool)这个名词 出现在19世纪40年代,当时台球室和赌场是紧密联系在一起的,以当时的辞汇称之即为“弹子房”。这个名称就保留下来,去年,光是美国就有超过四千万人玩台球,这项运动也常盛不衰。

尽管台球已经风靡世界各地,ESPN也时常转播职业球队的公开赛,但却始终未能赢得世人尊重的目光。

在台球风潮袭卷美洲之前,它已经有了一段发展不平衡的历史,这点,活跃分子诸如英格兰人杰克卡尔等功不可没。卡尔是首位将白垩用于磨削球杆尖端的人,19世纪20年代他还因在法国各地兜售他神奇的“白垩”发了财。事实上真正“神奇”的,是卡尔的手腕:他首创旋转球打法,当时称呼此动作的术语(“侧旋”(English))也沿用迄今。

在美国,台球因和赌博相联系,名声仍受到质疑。19世纪末,当台球公开赛成了盛装庆事,只能买到站票的时候,美国台球双雄迈克费兰和杜德利卡文纳长达20年之久的 霸,吸引了众人的目光,赢得了尊敬。具讽刺意味的是,他们 两人也开创了有冲突的台球协会间争相控制这种运动的传统,它使得所有的名次难以确定,列入奥运正式比赛项目仍只是一场梦。

好在,合法与成功并没有必然联系。1961年由保罗·纽曼和贾奇·葛利森主演的电影《江湖浪子》,表现了身处阴暗 下层社会台球高手们的魅力,台球生意兴隆起来。投币式的 台球桌也应运而生。这些新型小球 起初只在酒吧、保龄球馆中能找到;现在,从波士顿到北京,在挤满了人的台球场所 里,它俨然成为了主流。
参考技术A Cue sports (sometimes spelled cuesports), also known as billiard sports, are a wide variety of games of skill generally played with a cue stick which is used to strike billiard balls, moving them around a cloth-covered billiards table bounded by rubber cushions

All cue sports are generally regarded to have evolved into indoor games from outdoor stick-and-ball lawn games (retroactively termed ground billiards) , and as such to be related to trucco, croquet and golf, and more distantly to the stickless bocce and bowls.

The word "billiard" may have evolved from the French word billart or billette, meaning "stick", in reference to the mace, an implement similar to a golf club, which was the forerunner to the modern cue; the term's origin may have also been from French bille, meaning "ball". The modern term "cue sports" can be used to encompass the ancestral mace games, and even the modern cueless variants, such as finger billiards, for historical reasons. "Cue" itself came from queue, the French word for a tail. This refers to the early practice of using the tail of the mace to strike the ball when it lay against a rail cushion.

A recognizable form of billiards was played outdoors in the 1340s, and was reminiscent of croquet. King Louis XI of France (1461–1483) had the first known indoor billiard table. Louis XIV further refined and popularized the game, and it swiftly spread amongst the French nobility. While the game had long been played on the ground, this version appears to have died out in the 1600s, in favor of croquet, golf and bowling games, while table billiards had grown in popularity as an indoor activity. Mary, Queen of Scots, claimed that her "table de billiard" had been taken away by what would eventually become her executioners (who covered her body with the table's cloth).[5] In 1588, the Duke of Norfolk, owned a "billyard bord coered with a greene cloth... three billyard sticks and 11 balls of yvery". Billiards grew to the extent that by 1727, it was being played in almost every Paris cafe. In England, the game was developing into a very popular activity for members of the gentry.

By 1670, the thin butt end of the mace began to be used not only for shots under the cushion (which itself was originally only there as a preventative method to stop balls from rolling off), but players increasingly preferred it for other shots as well. The cue as it is known today was finally developed by about 1800.

Initially, the mace was used to push the balls, rather than strike them. The newly developed striking cue provided a new challenge. Cushions began to be stuffed with substances to allow the balls to rebound, in order to enhance the appeal of the game. After a transitional period where only the better players would use cues, the cue came to be the first choice of equipment.

The demand for tables and other equipment was initially met in Europe by John Thurston and other furniture makers of the era. The early balls were made from wood and clay, but the rich preferred to use ivory.

Early billiard games involved various pieces of additional equipment, including the "arch" (related to the croquet hoop), "port" (a different hoop) and "king" (a pin or skittle near the arch) in the 1770s, but other game variants, relying on the cushions (and eventually on pockets cut into them), were being formed that would go on to play fundamental roles in the development of modern billiards.

Illustration of a three ball pocket billiards game in early 19th century Tübingen, Germany, using a table much longer than the modern type.The early croquet-like games eventually led to the development of the carom or carambole billiards category – what most non-US and non-UK speakers mean by the word "billiards". These games, which once completely dominated the cue sports world but have declined markedly in many areas over the last few generations, are games played with three or sometimes four balls, on a table without holes (and without obstructions or targets in most cases), in which the goal is generally to strike one object ball with a cue ball, then have the cue ball rebound off of one or more of the cushions and strike a second object ball. Variations include three-cushion, straight rail and the balkline variants, cushion caroms, five-pins, and four-ball, among others.

Over time, a type of obstacle returned, originally as a hazard and later as a target, in the form of pockets, or holes partly cut into the table bed and partly into the cushions, leading to the rise of pocket billiards, especially "pool" games, popular around the world in forms such as eight-ball, nine-ball, straight pool and one-pocket amongst numerous others. The terms "pool" and "pocket billiards" are now virtually interchangeable, especially in the US. English billiards (what UK speakers almost invariably mean by the word "billiards") is a hybrid carom/pocket game, and as such is likely fairly close to the ancestral original pocket billiards outgrowth from 18th to early 19th century carom games.本回答被提问者采纳

ZZNU-OJ-2118 -(台球桌面碰来碰去,求总距离)——模拟到爆炸的不能AC的代码

 

2118 : 早安晚安,不如我先入土为安

题目描述

spring比较喜欢玩台球,因为看着台球在桌子上碰来碰去很有意思(台球撞壁反弹,入射角等于反射角),每次完美的台球入洞,都能体现他数学天才的能力。机房的大佬们当然不承认spring能力强,而是认为每次都是运气而已。

spring很不服气,但又打不过机房大佬,争执过程中聪明的渣渣宥终于想到了完美的办法,那也就是建立数学模型,交给脸红脖子粗的spring来解决。

题目给出一组(x,y),表示矩形的四个点分别为(0,0)(x,0)(0,y)(x,y),构成一个密闭的矩形,只有一个入口(也是唯一的出口)在原点也就是(0,0),假设一个点在原点按照角度(ay=bx)射入矩形中,所拥有的动能为E,每次接触墙壁并反弹所消耗的动能为W,如果射到除原点以外的三个顶点,将原路返回,并且消耗动能W。忽略摩擦力的影响,求出球在矩阵中运动的位移之和,保留两位有效数字。

输入

输入为六个正整数x,y,a,b,E,W。x,y,a,b均小于2000,E,W属于int

输出

求出球在矩阵中运动的位移之和,保留两位有效数字。

样例输入

复制
1 1 1 1 1 1
1 1 1 1 2 1

样例输出

复制
1.41
2.83

模拟了四个小时,WA了,瞬间原地爆炸了;

我把错误代码放着了,纪念一下下。

思路或许是对的,可能那个细节出了问题23333

放一组后台数据,就当是一丢丢正确的事情吧——

INPUT 

1 3 3 1 17 1

OUTPUT

17.92

以以下是错误代码,好心人可以瞧瞧bug——


以以下是错误代码,好心人可以瞧瞧bug——

  1 #include <iostream>
  2 #include<stdio.h>
  3 #include<string.h>
  4 #include<string>
  5 #include<algorithm>
  6 #define ll long long
  7 using namespace std;
  8 #include<math.h>
  9 #define N 1008
 10 #define M 10008
 11 #define dinf 1000000.0
 12 double X,Y,a,b,E,W;
 13 const double eps=1e-10;
 14 #define PI 3.14159265358
 15 struct Point
 16 {
 17     double x,y;
 18     Point(double x=0.0,double y=0.0):x(x),y(y) {}
 19 } p[5];
 20 typedef Point Vector;
 21 struct line
 22 {
 23     Point e,f;
 24     double k,b;
 25 } L0,L[5];
 26 
 27 Vector operator-(Point a,Point b)
 28 {
 29     return Vector(a.x-b.x,a.y-b.y);
 30 }
 31 bool operator==(Point a,Point b)
 32 {
 33     return (fabs(a.x-b.x)<eps)&&(fabs(a.y-b.y)<eps);
 34 }
 35 double cross(Vector t,Vector f) //计算两个向量的叉乘 之模
 36 {
 37     return (t.x*f.y-t.y*f.x);
 38 }
 39 double cross1(Point  e, Point  f,  Point  g)///向量ef与向量eg的叉积,左边为负值, 锐角为正值
 40 {
 41     return cross(f-e,g-e);
 42 }
 43 
 44 int factcover(  Point  e,  Point  f,  Point  g,  Point  h)///判断两个线段是否相交, 如果不包括端点 直接<0 包括端点为<=minn(极小值)
 45 {
 46     if(min(e.x,f.x)<=max(g.x,h.x)&&///要避免某一边的端点值  在另一边的延长线上
 47             max(e.x,f.x)>=min(g.x,h.x)&&
 48             min(e.y,f.y)<=max(g.y,h.y)&&
 49             max(e.y,f.y)>=min(g.y,h.y)&& ///<=也可以;前四行 大大于小, 大大于小, 大大于小, 大大于小
 50             cross1(e,f,g)*cross1(e,f,h)<0&&   ///两条边相交   端点判断容易出错  便需要两条边同时进行; ///己方向量加一异点, 此行相交时结果为负值或0
 51             cross1(e,g,h)*cross1(f,g,h)<0)    ///如果两者共点  返回值也是1///轮流己方一点指向两个异点, 此行相交时结果为负值或0
 52         return 1;          ///0 0 1 1 3 3 4 4 返回0      0 0 9 9 3 3 4 4 返回1
 53     return 0;              ///0 0 3 3 3 3 4 4 返回1     0 0 3 3 3 3 4 5 返回1
 54 }
 55 int fact_corner(  Point  e,  Point  f,  Point  g,  Point  h)///判断两个线段是否相交, 如果不包括端点 直接<0 包括端点为<=minn(极小值)
 56 {
 57     if(min(e.x,f.x)<=max(g.x,h.x)&&///要避免某一边的端点值  在另一边的延长线上
 58             max(e.x,f.x)>=min(g.x,h.x)&&
 59             min(e.y,f.y)<=max(g.y,h.y)&&
 60             max(e.y,f.y)>=min(g.y,h.y)&& ///<=也可以;前四行 大大于小, 大大于小, 大大于小, 大大于小
 61             cross1(e,f,g)*cross1(e,f,h)<=eps&&   ///两条边相交   端点判断容易出错  便需要两条边同时进行; ///己方向量加一异点, 此行相交时结果为负值或0
 62             cross1(e,g,h)*cross1(f,g,h)<=eps)    ///如果两者共点  返回值也是1///轮流己方一点指向两个异点, 此行相交时结果为负值或0
 63         return 1;          ///0 0 1 1 3 3 4 4 返回0      0 0 9 9 3 3 4 4 返回1
 64     return 0;              ///0 0 3 3 3 3 4 4 返回1     0 0 3 3 3 3 4 5 返回1
 65 }
 66 void init(double x,double y)     //四个顶点,四条边,初始点p0
 67 {
 68     p[1]=Point(0,0);
 69     p[2]=Point(0,y);
 70     p[3]=Point(x,y);
 71     p[4]=Point(x,0);
 72 
 73     L[1].e=p[1],L[1].f=p[2];
 74     L[1].k=dinf;
 75     L[2].e=p[2],L[2].f=p[3];
 76     L[2].k=0;
 77     L[3].e=p[3],L[3].f=p[4];
 78     L[3].k=dinf;
 79     L[4].e=p[4],L[4].f=p[1];
 80     L[4].k=0;
 81 
 82 }
 83 double Dot(Vector A,Vector B)   ///向量之间的点积
 84 {
 85     return A.x*B.x+A.y*B.y;
 86 }
 87 double Length(Vector A)     //利用点积求向量长度
 88 {
 89     return sqrt(Dot(A,A));
 90 }
 91 
 92 double DisToLine(Point P,Point A,Point B)  //点到直线的距离
 93 {
 94     Vector v1=B-A,v2=P-A;
 95     return fabs(cross(v1,v2))/Length(v1);
 96 }
 97 void factk(line &s)   //计算并更改S的斜率,并将线段的边长延伸M倍
 98 {
 99     /* if(fabs(s.e.x-s.f.x)<1e-8) //斜率不存在
100      {
101          s.e.y+=M;s.f.y-=M;
102      }
103      else{*/
104     // s.k=(s.e.y-s.f.y)/(s.e.x-s.f.x);
105     s.e.x+=1.0*M;
106     s.e.y+= s.k * M;
107     s.f.x-=1.0*M;
108     s.f.y-= s.k * M;
109 
110 }
111 void launch(line &s,Point &p0,int begnum, double &ans)    //反射,并返回碰撞数据
112 {
113     //求触碰边(角落),返回 反射后的射线S的 p0、k、b系数;
114     int flag=0;
115 
116     for(int i=1; i<=4; i++) //先检查是否撞到了四条边上,再检查是否撞到了四个点上
117     {
118         if(i!=begnum&&factcover(s.e,s.f,L[i].e,L[i].f)==1)
119         {
120             flag=i;
121             break;
122         }
123     }
124     if(flag!=0)   //本次弹射将撞到 第flag的边上
125     {
126         double newk,newb;
127         cout<<""<<flag;
128         if(flag==1||flag==3)  //两条竖着的边
129         {
130             double x=L[flag].e.x;
131             double y=s.k*x+s.b;
132             ans+=Length(p0-Point(x,y));
133             p0=Point(x,y);
134 
135             newk=-1*s.k;
136             newb=y-x*newk;
137         }
138         else  //两条横着的矩形边
139         {
140             double y=L[flag].e.y;
141             double x=(y-s.b)/s.k;
142             ans+=Length(p0-Point(x,y));
143             p0=Point(x,y);
144 
145             newk=-1*s.k;
146             newb=y-x*newk;
147         }
148 
149         s.k=newk;
150         s.b=newb;///更新反射后的射线S 的k和b
151     }
152     else
153     {
154         if(begnum>4)
155             begnum-=4;//本次弹射将撞到 第flag的角落上
156         int a[]= {0,  1,4, 1,2, 2,3, 3,4};
157         int vis[5]= {0}; //标记
158         int t1,t2;
159         t1=a[begnum*2-1];
160         t2=a[begnum*2];
161         vis[t1]=vis[t2]=1;//标记的点
162         ///找到可以弹射到的第k个角落
163         for(int j=1; j<=7; j+=2)
164         {
165             if(vis[a[j]]==0&&vis[a[j+1]]==0)
166             {
167                 flag=(j+1)/2;
168                 break;
169             }
170         }
171 
172         cout<<""<<flag;
173         ans+=Length(p0-p[flag]);
174         p0=p[flag];
175 
176         s.k=-s.k;
177         s.b=s.b;///碰撞到四个角后原路返回,k变化,b不变!
178     }
179 
180 }
181 int main()
182 {
183 
184     while(scanf("%lf",&X)!=EOF)
185     {
186         scanf("%lf%lf%lf%lf%lf",&Y,&a,&b,&E,&W);
187         init(X,Y);
188         int Time=0;
189 
190         Point p0=Point(0,0);  //初始起点和射线
191         line s;
192         s.k=b/a;
193         s.b=0.0;
194         double ans=0.0;
195 
196         while(E>0)
197         {
198             ++Time;
199             int begnum=-1;
200             for(int i=1; i<=4; i++) //四个角编号为1+4--4+4
201             {
202                 if(p[i]==p0)
203                     begnum=i+4;
204             }
205             for(int i=1; begnum==-1&&i<=4; i++) //四条边为1--4
206             {
207                 if(DisToLine(p0,L[i].e,L[i].f)<eps)
208                 {
209                     begnum=i;
210                 }
211             }
212             printf(" p0= %lf,%lf  s.k=%lf s.b=%lf total_ans:%lf
",p0.x,p0.y,s.k,s.b,ans);
213             if(Time>1&&begnum==5)break;///从源点冲出去了
214 
215             s.e=p0;
216             s.f=p0;//当前射线方程;
217             factk(s);//由点扩展成线
218 
219             launch(s,p0,begnum,ans);//发射小球,计算出新的碰撞点存入p0中,并更改a,b
220             E-=W;//减去动能W
221         }
222         printf("%.2lf
",ans);
223     }
224 
225     return 0;
226 }

 

以上是关于英文台球发展史的主要内容,如果未能解决你的问题,请参考以下文章

学了java,我才发现台球还可以这样玩!

Unity3d台球/台球瞄准问题

虚拟台球4出现图像性能检测报错出现virtual pool4停止工作的解决办法

中式台球 规则 ( ChinaBilliards )

2544: 台球碰撞

使用 SceneKit 的台球游戏中的后旋效果