HDU - 1700(计算几何)

news/2024/10/23 12:28:37/

问题描述:

There is a cycle with its center on the origin. 
Now give you a point on the cycle, you are to find out the other two points on it, to maximize the sum of the distance between each other 
you may assume that the radius of the cycle will not exceed 1000.

Input

There are T test cases, in each case there are 2 decimal number representing the coordinate of the given point.

Output

For each testcase you are supposed to output the coordinates of both of the unknow points by 3 decimal places of precision 
Alway output the lower one first(with a smaller Y-coordinate value), if they have the same Y value output the one with a smaller X. 

NOTE
when output, if the absolute difference between the coordinate values X1 and X2 is smaller than 0.0005, we assume they are equal.

Sample Input

2
1.500 2.000
563.585 1.251
Sample Output

0.982 -2.299 -2.482 0.299
-280.709 -488.704 -282.876 487.453


题目题意:题目给我们一个点的坐标,这个点在一个以原点0为圆心的圆上,求这个圆上的另外俩个点的坐标使得这个三角形的周长最长.

题目分析:考的主要是这个知识点:(边数一定)圆的内接正多边形的周长最长,我试图证了一下,发现数学知识不够用了,等找个机会问问高数老师(再补回来).

还有就是这是这个矢量旋转公式:

二维矢量旋转公式:点p(x1,y1) 绕点0(x0,y0)旋转r角度d(顺时针)的坐标

X=(x1-x0)*cos(r)-(y1-y0)*sin(r)+x0;

Y=(x1-x0)*sin(r)+(y1-y0)*cos(r)+y0;


代码如下:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;const double epx=5*1e-4;
const double PI=acos(-1.0);int main()
{int t;scanf("%d",&t);while (t--) {double x,y;scanf("%lf%lf",&x,&y);double r=2*PI/3;double x1=x*cos(r)-y*sin(r);double y1=x*sin(r)+y*cos(r);double x2=x*cos(2*r)-y*sin(2*r);double y2=x*sin(2*r)+y*cos(2*r);if (y2-y1>epx) {//注意细节,绝对值小于epx就是相等的了printf("%.3lf %.3lf %.3lf %.3lf\n",x1,y1,x2,y2);}else if (fabs(y1-y2)<epx) {if (x1<x2)printf("%.3lf %.3lf %.3lf %.3lf\n",x1,y1,x2,y2);elseprintf("%.3lf %.3lf %.3lf %.3lf\n",x2,y2,x1,y1);}elseprintf("%.3lf %.3lf %.3lf %.3lf\n",x2,y2,x1,y1);}return 0;
}










http://www.ppmy.cn/news/118948.html

相关文章

SSS1700设计方案|SSS1700中文说明书

USB音频解码方案|SSS1700方案设计详解SSS1700是台湾鑫创新推出一款USB音频控制芯片。SSS1700相比SSS1629和SSS1630&#xff0c;有下面优势特性&#xff1a;1.整个USB音频设计电路无电容输出&#xff0c;芯片内置12MHz晶振&#xff0c;减少外围器件&#xff0c;整个方案BOM本降低…

51 Nod 1700 首尾排序法

1700 首尾排序法 有一个长度为n的数组 p1, p2, p3, ⋯, pnp1, p2, p3, ⋯, pn &#xff0c;里面只包含1到n的整数&#xff0c;且每个数字都不一样。现在要对这个数组进行从小到大排序&#xff0c;排序的时候只能是把一个数字拿过来放到数组末尾或者开头&#xff0c;问最少要操…

艾默生质量流量计2700/1700调试说明

2700/1700面板操作 一. 屏幕显示说明: SELECT--- 确认键 SCROLL---- 选择键 LED---状态指示灯 二. 显示器密码: 如果需要密码,CODE的字样就会出现在密码屏幕的顶部. 输入密码时候,通过使用SCROLL来选择数字, 并用SELECT移到下一个字符, 一次只好输入一个字符. 如果你面对…

限时开源,一份“扭转乾坤”的与时俱进的1700页Java八股文

今天在某客看到一个程序员自述&#xff0c;内容如下&#xff1a; 人到三十&#xff0c;公司效益不好被裁员&#xff0c;两个月时间面了三十几家&#xff0c;一直不是很顺利&#xff0c;面试问八股&#xff0c;根本答不上来。前期不信邪&#xff0c;正常投简历正常面试&#xf…

纽扣电池新规16 CFR1700.15/.20和ANSI C18.3M锂原生电池安全标准如何办理

2023年2月10日&#xff0c;美国向WTO提交G/TBT/N/USA/1964号通报&#xff0c;拟发布纽扣电池或硬币电池以及含有此类电池的消费品的安全标准和通知要求&#xff0c;征求意见截止日期为2023年3月13日&#xff0c;拟通过日期和生效日期待定。 拟定规则通知根据H.R.5313瑞茜法案的…

amd ryzen7 1700 linux,从Ryzen7 1700移动版首测看AMD未来布局

1Ryzen7 1700移动版首测 AMD Ryzen 移动版可谓是让人等的火急火燎&#xff0c;前不久AMD官方自爆移动版Ryzen将会推出低功耗和高性能两种&#xff0c;另外移动版Ryzen将像之前的APU一样集成新一代Vega图形核心。当然这是针对基于“ZEN”的新一代APU&#xff0c;而笔者有幸接触到…

ISD1700语言芯片应用实践

ISD1700语言芯片应用实践 有好长一段时间没有摆弄硬件了&#xff0c;这次需要把原来硬件上的语音芯片增加一些功能&#xff08;支持多语言播放随机控制&#xff09;&#xff0c;所以必须让原来使用按钮控制的芯片用SPI控制的方式工作。 要点 SPI模式和按钮模式可以同时存在&…