题解 | #正三角形的顶点位置#通过旋转矩阵最简单#cmath#

正三角形的顶点位置

http://www.nowcoder.com/practice/d10dc47192234e0f81f5056e5ce7dd35

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        double x1, y1, x2, y2, x3, y3, x4, y4;
        cin >> x1 >> y1 >> x2 >> y2;
        double dx = x2 - x1, dy = y2 - y1;
        x3 = x1 + 0.5*dx + sqrt(3)/2*dy;
        y3 = y1 - sqrt(3)/2*dx + 0.5*dy;
        x4 = x1 + 0.5f*dx - sqrt(3)/2*dy;
        y4 = y1 + sqrt(3)/2*dx + 0.5f*dy;
        if(x3 < x4 || (x3 == x4 && y3 <= y4))
        {
            cout << fixed << setprecision(2) << x3 << " " << y3 << " " << x4 << " " << y4 << endl;
        }
        else if(x3 > x4 || (x3 == x4 && y4 < y3))
        {
            cout << fixed << setprecision(2) << x4 << " " << y4 << " " << x3 << " " << y3 << endl;
        }
    }
    return 0;
}
全部评论

相关推荐

程序员小白条:找实习多投就行,但25届现在是春招时间呃呃呃,你想以后参加社招吗
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务