Der Winkel zwischen zwei geraden Linien,

C ++ , ein Programm, eine Winkelberechnung vier Punkte bilden zwei gerade schreibt
die Ausgabeanzeige steuern können , um die Anzahl von Gleitkommazahlen stream: setprecision (n) Beschreibung. C ++ Standardwert des Ausgangsstroms ist 6 Bits.
Gegeben die Koordinaten von vier Punkten ABCD repräsentiert gerade Linien AB und CD auf der Ebene. Integer - Koordinaten sind der absolute Wert von nicht mehr als 100. Die beiden Geraden wird berechnet als die Anzahl der Grade ein spitzer Winkel ist . (Zwei Dezimalstellen)
Hinweis: Wenn zwei Geraden parallel oder zusammenfällt, ist die Antwort 0.
Testbeispiel:
Testeingang: 00100001
Erwartete Ausgabe: 90.00
Testeingang: 163.421.879.823.129
erwartete Ausgabe: 75.36

#include<iostream>
#include<cmath>
#include<iomanip>
#define pi 3.1415926;
using namespace std;
int main()
{    
    double x1,y1,x2,y2,x3,y3,x4,y4;
    long double x,y;
    cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
    x=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
    y=(x3-x4)*(x3-x4)+(y3-y4)*(y3-y4);
    long double s1,s2;
    s1=sqrt(x);
    s2=sqrt(y);
    long double s3;
    s3=(x2-x1)*(x4-x3)+(y2-y1)*(y4-y3);
    long double s4;
    s4=abs(s3);
    long double ans,ans2;
    ans2=s4/(s1*s2);
    ans=acos(ans2);
    long  double ans3;
    ans3=(180*ans)/pi;
    cout<<fixed<<setprecision(2)<<(long double)ans3;
    return 0;
}
Veröffentlicht 102 Originalarbeiten · erntete Lob 93 · Ansichten 4983

Ich denke du magst

Origin blog.csdn.net/huangziguang/article/details/104574951
Empfohlen
Rangfolge