LightOj1388 - Trapezium Drawing(求梯形点的坐标)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1388
题意:已知梯形的点A B的坐标,以及b c d的长度,求C D两点的坐标;默认AB是梯形平行边的较长边;

注意D点可能在A点的左边,AB可能不是水平的,剩下的求根据A点求D点,在根据D点求C点;
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<set>
using namespace std;
#define met(a, b) memset(a, b, sizeof(a))
#define maxn 10005
#define maxm 20005
#define INF 0x3f3f3f3f
typedef long long LL; int main()
{
int T, tcase = ;
scanf("%d", &T);
while(T --)
{
double b, c, d, ax, ay, bx, by; scanf("%lf %lf %lf %lf %lf %lf %lf", &ax, &ay, &bx, &by, &b, &c, &d); double a = sqrt((ax-bx)*(ax-bx) + (ay-by)*(ay-by));///直线AB的距离; double sina = (by-ay) / a;
double cosa = (bx-ax) / a;
///AB与水平线的sin和cos值; double p = (b+d+a-c)/;
double s = sqrt(p*(p-b)*(p-d)*(p-(a-c)));
double h = s*/(a-c);///D到AB的距离; int flag = ; if(b*b > d*d + (a-c)*(a-c)) flag = ;///角DAB为钝角; double t = sqrt(fabs(d*d - h*h)); if(flag) t = -t; double dx = ax + (t*cosa - h*sina);
double dy = ay + (h*cosa + t*sina); double cx = dx + c*cosa;
double cy = dy + c*sina; printf("Case %d:\n%.8lf %.8lf %.8lf %.8lf\n", tcase++, cx, cy, dx, dy);
}
return ;
}
LightOj1388 - Trapezium Drawing(求梯形点的坐标)的更多相关文章
- hdu 2857:Mirror and Light(计算几何,点关于直线的对称点,求两线段交点坐标)
Mirror and Light Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- c++实现 给定直角停车位两个点,求取剩余两点坐标。
//2018-09-08-fourmi /*************************include head files************************************ ...
- js已知A,B两点坐标,在线段AB上有C点,已知AC的距离,求C点的坐标
/** * @param {Number} _x1 A点坐标 * @param {Number} _y1 A点坐标 * @param {Number} _x2 B点坐标 * @param {Numbe ...
- MATLAB—求直线或者线段之间的交点坐标
function CrossPoint( ) %% 求两条直线的交点坐标 x1 = [7.8 8]; y1 = [0.96 0.94]; %line2 x2 = [8.25 8.25]; y2 = [ ...
- BZOJ 1185: [HNOI2007]最小矩形覆盖-旋转卡壳法求点集最小外接矩形(面积)并输出四个顶点坐标-备忘板子
来源:旋转卡壳法求点集最小外接矩形(面积)并输出四个顶点坐标 BZOJ又崩了,直接贴一下人家的代码. 代码: #include"stdio.h" #include"str ...
- java求两个圆相交坐标
最近由于项目需要,根据两个圆函数求出相交的坐标.实现代码如下,另感谢两圆求交点算法实现Java代码,虽然他所贡献的代码中存在问题,但仍有借鉴意义. 1.两个圆相交的数学求法 在中学数学中我们知道,一个 ...
- “为什么DirectX里表示三维坐标要建一个4*4的矩阵?”
0x00 前言 首先要说明的是,本文的标题事实上来自于知乎上的一个同名问题:为什么directX里表示三维坐标要建一个4*4的矩阵? - 编程 .因此,正如Milo Yip大神所说的这个标题事实上是存 ...
- 定点CORDIC算法求所有三角函数及向量模的原理分析、硬件实现(FPGA)
一.CORDIC算法 CORDIC(Coordinate Rotation DIgital Computer)是一种通过迭代对多种数学函数求值的方法,它可以对三角函数.双曲函数和平面旋转问题进行求解. ...
- 通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ
通过经纬度坐标计算距离的方法(经纬度距离计算) 最近在网上搜索“通过经纬度坐标计算距离的方法”,发现网上大部分都是如下的代码: #define PI 3.14159265 static double ...
随机推荐
- eclipse生成jar包
第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包. 1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项: 2.在弹出的对话 ...
- HDU 4618 Palindrome Sub-Array(DP)
题目链接 我还是图样啊....比赛的时候没敢暴力去搜... #include <cstdio> #include <cstdlib> #include <cstring& ...
- oracle系列--第二篇 oracle下载
对于很多新手来说,包括我之前也是这样,知道oracle数据库,但是就是不知道在哪里下载.有时候,上到oracle官方网站上面都找不到下载的地方. 这不像apache里面那么直接,我们想下载如:tomc ...
- SOLR (全文检索)
SOLR (全文检索) http://sinykk.iteye.com/ 1. 什么是SOLR 官方网站 http://wiki.apache.org/solr http://wiki.apach ...
- 关于Reapter多重嵌套的详细补充
<asp:Repeater ID ="rptfour" runat ="server" OnItemDataBound="two_Bind&qu ...
- 关于iOS手势
引: 前几天遇到一个坑,又仔细分析了一下事件的原理,不得不承认苹果的文档还是写的挺好的,网上就搜不到有几篇博客是介绍这个的,都是一些关于基本的用法的.这里纪录一下. 1.关于事件响应链. a.硬件接收 ...
- Windows Server 2012 FTP配置 后客户机一直登录不上
配置FTP时出现奇怪的问题,服务器配置完成后客户机访问FTP站点时输入用户名密码一直不对. 经多次试验后发现,默认情况下是如下图配置.将用户下次登录时必须更改密码勾掉,勾选密码永不过期即可正常登录.
- 使用javabean连接数据库时遇到的问题
1.whitespace问题.是便签了每空格如: 就会出现下面的问题.contentType前每空格.空格后就解决了 2. 这是部署问题,关闭,重新部署 追问 怎么部署? 回答 1.选中项目 F5(e ...
- 通过SEP屏蔽共享文件夹
Go to Policies – Application and Device Control. Select default Application and Device Control polic ...
- 连连看beta发布
组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...