Div#432B Arpa and an exam about geometry

本文探讨了一个几何问题:是否存在一个旋转中心使得三个给定点通过旋转能够分别达到其他两点的位置。通过数学推导,得出了解决这一问题的充分必要条件,并给出了对应的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:二维坐标系中给出三个点A B C,问是否存在一个旋转中心点D,使ABC同时绕D旋转后,能使A到达原来的B点,B到达原来的C点。

题解:只需AB线段长度=BC。

证明:若ABC共线,不存在D点,无解。

若不共线,则ABC共圆,此时只可能绕圆心旋转,否则点会转出此圆,不可能满足题意。转过一个角度,若能使A到达原来的B点,B到达原来的C点,那么A,B两点与圆心连线转过圆心角相等,那么弧长AB=BC,那么必有弦长AB=BC。证毕。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long ax, ay, bx, by, cx, cy;
	cin >> ax >> ay >> bx >> by >> cx >> cy;
	if ((ax - bx)*(by - cy) == (ay - by)*(bx - cx))cout << "No";
	else if ((ax - bx)*(ax - bx) + (ay - by)*(ay - by) == (bx - cx)*(bx - cx) + (by - cy)*(by - cy))cout << "Yes";
	else cout << "No";
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值