编程介的小学生 2017-03-29 03:27 采纳率: 20.5%
浏览 718
已采纳

Crossing Prisms

Prof. Bocchan is a mathematician and a sculptor. He likes to create sculptures with mathematics.

His style to make sculptures is very unique. He uses two identical prisms. Crossing them at right angles, he makes a polyhedron that is their intersection as a new work. Since he finishes it up with painting, he needs to know the surface area of the polyhedron for estimating the amount of pigment needed.

For example, let us consider the two identical prisms in Figure 14. The definition of their cross section is given in Figure 15. The prisms are put at right angles with each other and their intersection is the polyhedron depicted in Figure 16. An approximate value of its surface area is 194.8255.

Given the shape of the cross section of the two identical prisms, your job is to calculate the surface area of his sculpture.

Input

The input consists of multiple datasets, followed by a single line containing only a zero. The first line of each dataset contains an integer n indicating the number of the following lines, each of which contains two integers ai and bi (i = 1, ... ,n).

A closed path formed by the given points (a1, b1 ), (a2, b2 ), ..., (an, bn), (an+1, bn+1)(= (a1, b1 )) indicates the outline of the cross section of the prisms. The closed path is simple, that is, it does not cross nor touch itself. The right-hand side of the line segment from (ai,bi) to (ai+1 ,bi+1) is the inside of the section.

You may assume that 3 <= n <= 4, 0 <= ai <= 10 and 0 <= bi <= 10 (i = 1, ... ,n).

One of the prisms is put along the x-axis so that the outline of its cross section at x = E is indicated by points (xi,yi,zi)=(E,ai,bi) (0 <= E <= 10, i =1,... ,n). The other prism is put along the y-axis so that its cross section at y = F. is indicated by points (xi,yi,zi)=(ai,F,bi) (0 <= F <= 10, i = 1,... ,n).

Output

The output should consist of a series of lines each containing a single decimal fraction. Each number should indicate an approximate value of the surface area of the polyhedron defined by the corresponding dataset. The value may contain an error less than or equal to 0.0001. You may print any number of digits below the decimal point.

Sample Input

4
5 0
0 10
7 5
10 5
4 7 5
10 5
5 0
0 10
4
0 10
10 10
10 0
0 0
3
0 0
0 10
10 0
4
0 10
10 5
0 0
9 5
4
5 0
0 10
5 5
10 10
4
0 5
5 10
10 5
5 0
4
7 1
4 1
0 1
9 5
0
Sample Output

194.8255
194.8255
600.0000
341.4214
42.9519
182.5141
282.8427
149.2470

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-04-07 14:57
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。