Clockwise or Counterclockwise

题意:给出三个点A,B,C做一个圆,问从A->B->C是顺时针还是逆时针。

比赛时口胡叉积(疫情期间网课不努力,现在看着数学流泪):当方向向内(平面)时结果是负的,否则是正的,观察发现如果输出结果是顺时针则叉积方向向内,当结果是逆时针时叉积方向向外。

于是比赛我就这样交了,然后过了,但我百度了一下没有找到叉积的大小和方向的关系,想来二者是没有什么关系了,不过翻文章时找到了这样一段话:
叉积的一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系:
若 P × Q > 0 , 则P在Q的顺时针方向。
若 P × Q < 0 , 则P在Q的逆时针方向。
若 P × Q = 0 , 则P与Q共线,但可能同向也可能反向。
结论引用文章

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#include<vector>

using namespace std;

struct Point {
    double x;
    double y;
}a,b,c;

int main() {
    ios::sync_with_stdio(false);
    int t;
    cin >> t;
    while (t--) {
        cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y;
        double sign1 = b.x - a.x;//x1
        double sign2 = b.y - a.y;//y1
        double sign3 = c.x - a.x;//x2
        double sign4 = c.y - a.y;//y2
        double sign = sign1 * sign4 - sign2 * sign3;//x1*y2-x2*y1
        if (sign < 0) cout << "Clockwise" << endl;
        else cout << "Counterclockwise" << endl;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值