x表示斜線面積、y點狀面積(4塊)、z剩下的(4塊)
由畢式定理:紅色三角形邊長比為1:√3:2
即是,算出紅色三角形面積 + 30度的扇形面積,
與半個正方形面積的差值,為半個z:
(a^2)/2 - [(1/2) * (a/2) * (√3a/2) + (30/360) * πa^2]
乘2後可得z:
a^2 - (√3a^2)/4 - (πa^2)/6
利用z來求y值,
y為正方形面積與90度扇形面積+2個z的差值:
a^2 - [(90/360) * πa^2 + 2z]
化簡後可得y:
a^2 - (πa^2)/4 - 2z
最後中間那塊x即為正方形面積與4塊(y+z)面積的差值:
a^2 - 4z - 4y
請無視我寫的E跟F(掩面),看來我少標一個點……
/* ACM 10209 * mythnc * 2011/10/15 00:01:27 * run time: 0.040 */ #include <stdio.h> #include <math.h> int main(void) { /* x: striped region, y: dotted region, z: the rest */ /* y and z have 4 pieces */ /* output x directly: a^2 - 4y - 4z */ double a, y, z; double const pi = 3.1415926535897931159980; while (scanf("%lf", &a) != EOF) { a *= a; /* a mean a^2 now */ z = 4*a - 2*pi*a / 3 - a*sqrt(3); /* z mean 4z now */ y = 4*a - pi*a - 2*z; /* y mean 4y now */ printf("%.3f %.3f %.3f\n", a - y - z, y, z); } return 0; }
沒有留言:
張貼留言