zoukankan      html  css  js  c++  java
  • bnu 10805 矩形神码的 平面向量的运行

    矩形神码的

    1000ms
    65536KB
    Special Judge
     
    64-bit integer IO format: %lld      Java class name: Main
    Font Size:  
    Type:  
    我们都知道,矩形是由两条对角线的,没错吧?(谜之声:这不是显然么!)这两条线的长度也是相等的,没错吧?(谜之声:这不废话么!)然后我们给定一条对角线的起始点和终止点的坐标,然后给定另一个对角线和他的夹角,是不是就能得到两个面积相等的矩形?(谜之声:呃,貌似好像或许应该可能maybe perhaps probably possibly是对的?)
    现在我需要你求出这个矩形的面积。

    Input

    第一行,一个整数T(0<T<=10000),表示数据组数。
    接下来T行,每行5个浮点数。分别是x1,y1,x2,y2,theta。表示一条对角线的起始点和终止点的坐标,以及另一条对角线与他的夹角。坐标的绝对值范围均在104以内,夹角范围(0,90]。
     

    Output

    对于每一组数据,输出一行,表示面积,精确到小数点后六位。绝对误差或者相对误差在0.0001内均算通过。
     

    Sample Input

    2
    1.0 1.0 -1.0 -1.0 90.0
    3.0 2.0 2.5 9.99 36.00
    
     

    Sample Output

    4.000000
    18.835608
    
     

    Hint

    pi请取值acos(-1.0)或者3.1415926535898
     

    Source

    Author

    51isoft

    Tags ( Click to see)

    初中知识,囧...我的数学

     1 /*
     2 刚开始,我居然不知道,矩阵对角线是一样长的,囧.画了一个圆,才知道。
     3 刚开始,我居然不知道,c语言里cos()是用弧度的。囧。
     4 暴力了数学的差。
     5 
     6 向量的 AB=B-A;
     7 第一种方法:向量法。
     8             求出中点坐标,然后根据向量求出另一个点。
     9 第二种方法:s=1/2*a*b*sinc;
    10 
    11 */
    12 
    13 //第一种
    14 #include<iostream>
    15 #include<cstdio>
    16 #include<cstring>
    17 #include<cstdlib>
    18 #include<math.h>
    19 using namespace std;
    20 
    21 double pi=acos(-1.0);
    22 
    23 int main()
    24 {
    25     int t;
    26     double x1,y1,x2,y2,theta;
    27     double avex,avey,hxl,tom,x3,y3,x4,y4;
    28     while(scanf("%d",&t)>0)
    29     {
    30         while(t--)
    31         {
    32             scanf("%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&theta);
    33             theta=theta/180*pi;
    34             avex=(x1+x2)/2;
    35             avey=(y1+y2)/2;
    36             x4=x2-avex;//向量坐标
    37             y4=y2-avey;
    38 
    39             x3=x4*cos(theta)-y4*sin(theta);
    40             y3=x4*sin(theta)+y4*cos(theta);
    41             x3=x3+avex;
    42             y3=y3+avey;
    43 
    44             hxl=sqrt( (x3-x1)*(x3-x1)+(y3-y1)*(y3-y1) );
    45             tom=sqrt( (y3-y2)*(y3-y2)+(x3-x2)*(x3-x2) );
    46 
    47             printf("%.6lf
    ",hxl*tom);
    48         }
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    BZOJ 1631 Cow Party
    BZOJ 1927 星际竞速
    BZOJ 4059 Non-boring sequences
    BZOJ 1562 变换序列
    BZOJ 4417 超级跳马
    484586
    背板问题之满包问题
    对01背包路径的记录
    带权值的图 BFS
    漫步校园 杭电1428
  • 原文地址:https://www.cnblogs.com/tom987690183/p/3349105.html
Copyright © 2011-2022 走看看