当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。
Figure 1. A bar rotating in a polygon
Initially, an end of the bar (called "end A") is at (0,0), and the other end (called "end B") is at (0,L) where L is the length of the bar. Initially, the bar is touching the wall only at the end A.
The bar turns fixing a touching point as the center. The center changes as a new point touches the wall.
Your task is to calculate the coordinates of the end A when the bar has fully turned by the given count R.
Figure 2. Examples of turning bars
In Figure 2, some examples are shown. In cases (D) and (E), the bar is stuck prematurely (cannot rotate clockwise anymore with any point touching the wall as the center) before R rotations. In such cases, you should answer the coordinates of the end A in that (stuck) position.
You can assume the following:
When the bar's length L changes by ε (|ε| < 0.00001), the final (x,y) coordinates will not change more than 0.0005.
The input consists of multiple datasets. The number of datasets is no more than 100. The end of the input is represented by "0 0 0".
The format of each dataset is as follows:
L R NL is the length of the bar. The bar rotates 2π× R radians (if it is not stuck prematurely). N is the number of vertices which make the polygon.
The vertices of the polygon are arranged in a counter-clockwise order. You may assume that the polygon is simple, that is, its border never crosses or touches itself.
N, Xi and Yi are integer numbers; R and L are decimal fractions. Ranges of those values are as follows:
1.0 ≤ L ≤ 500.0,For each dataset, print one line containing x- and y-coordinates of the final position of the end A, separated by a space. The value may contain an error less than or equal to 0.001. You may print any number of digits after the decimal point.
4.0 2.0 8 -1 0 5 0 5 -2 7 -2 7 0 18 0 18 6 -1 6 4.0 2.0 4 -1 0 10 0 10 12 -1 12 4.0 1.0 7 -1 0 2 0 -1 -3 -1 -8 6 -8 6 6 -1 6 4.0 2.0 6 -1 0 10 0 10 3 7 3 7 5 -1 5 5.0 2.0 6 -1 0 2 0 2 -4 6 -4 6 6 -1 6 6.0 1.0 8 -1 0 8 0 7 2 9 2 8 4 11 4 11 12 -1 12 0 0 0
16.0 0.0 9.999999999999998 7.4641016151377535 0.585786437626906 -5.414213562373095 8.0 0.0 6.0 0.0 9.52786404500042 4.0
Note that the above sample input corresponds to the cases in Figure 2. For convenience, in Figure 3, we will show an animation and corresponding photographic playback for the case (C).
时间上限 | 内存上限 |
10000 | 65536 |