这道题目是13山东省省赛的签到题,题目大意是给等边三角形的两个定点,让求逆时针旋转之后的第三个点的坐标,原来不会向量的旋转,在网上找了找,找到一篇挺好的,直接贴过来。

向量的旋转

实际做题中我们可能会遇到很多有关及计算几何的问题,其中有一类问题就是向量的旋转问题,下面我们来具体探讨一下有关旋转的问题。

首aaarticlea/png;base64,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" alt="" name="图像1" width="204" height="195" align="left" border="0" hspace="12" />先我们先把问题简化一下,我们先研究一个点绕另一个点旋转一定角度的问题。已知A点坐标(x1,y1),B点坐标(x2,y2),我们需要求得A点绕着B点旋转θ度后的位置。

如图:A' 就是A点绕B点旋转θ角度后得到的点,问题是我们要如何才能得到A' 点的坐标。(向逆时针方向旋转角度正,反之为负)研究一个点绕另一个点旋转的问题,我们可以先简化为一个点绕原点旋转的问题,这样比较方便我们的研究。之后我们可以将结论推广到一般的形式上。令B是原点,我们先以A点向逆时针旋转为例,我们过A' 做AB的垂线,交AB于C,过C做x轴的平行线交过A' 做x轴的垂线于D。过点C做x轴的垂线交x轴于点E。

令aaarticlea/png;base64,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" alt="" name="角度" width="226" height="215" align="left" border="0" hspace="12" />A的坐标(x,y),A' 坐标(x1,y1),B的坐标(0,0)。我们可以轻松的获取AB的长度,而且显而易见A' B长度等于AB。假设我们已知θ角的大小那么我们可以很快求出BC和A' C的长度。BC=A' B x cosθ,A' C=A' B x sinθ。

因为∠A' CB和∠DCE为直角(显然的结论),则∠A' CD +∠DCB =∠ECD +∠DCB=90度。

则∠A' CD=∠ECD,∠A' DC=∠CEB=90度,因此可以推断⊿CA' D ∽⊿CBE。由此可以退出的结论有:

BC/BE=A' C/A' D和BC/CE=A' C/CD

当然了DC和A' D都是未知量,需要我们求解,但是我们却可以通过求出C点坐标和E点坐标间接获得A' C和CD的长度。我们应该利用相似的知识求解C点坐标。

C点横坐标等于:((|AB| x cosθ) / |AB|) * x = x*cosθ

C点纵坐标等于:((|AB| x cosθ) / |AB|) * y = y*cosθ

则CE和BE的的长度都可以确定。

我们可以通过相⊿CA' D ∽⊿CBE得出:

AD = x * sinθ   DC = y * sinθ

那么接下来很容易就可以得出:

x1 = x*cosθ- y * sinθ y1 = y*cosθ + x * sinθ

则A' 的坐标为(x*cosθ- y * sinθ, y*cosθ + x * sinθ)

我们可以这样认为:对于任意点A(x,y),A非原点,绕原点旋转θ角后点的坐标为:(x*cosθ- y * sinθ, y*cosθ + x * sinθ)

接下来我们对这个结论进行一下简单的推广,对于任意两个不同的点A和B(对于求点绕另一个点旋转后的坐标时,A B重合显然没有太大意义),求A点绕B点旋转θ角度后的坐标,我们都可以将B点看做原点,对A和B进行平移变换,计算出的点坐标后,在其横纵坐标上分别加上原B点的横纵坐标,这个坐标就是A' 的坐标。

推广结论:对于任意两个不同点A和B,A绕B旋转θ角度后的坐标为:

(Δx*cosθ- Δy * sinθ+ xB, Δy*cosθ + Δx * sinθ+ yB )//结论

注:xB、yB为B点坐标。

结论的进一步推广:对于任意非零向量AB(零向量研究意义不大),对于点C进行旋转,我们只需求出点A和B对于点C旋转一定角度的坐标即可求出旋转后的向量A' B' ,因为向量旋转后仍然是一条有向线段。同理,对于任意二维平面上的多边形旋转也是如此。

以上是比较简单的,最后把结论记好就行了。上面是绕B点进行旋转的,所以Δx = xa - xb, Δy = ya - yb,如果绕A反过来就行了。

题目代码:

/*************************************************************************
> File Name: upc_2217.cpp
> Author: Howe_Young
> Mail: 1013410795@qq.com
> Created Time: 2015年04月29日 星期三 20时03分21秒
************************************************************************/ #include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm> using namespace std; int main()
{
int t;
double x1, y1, x2, y2;
scanf("%d", &t);
while (t--)
{
scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
double x3, y3;
x3 = (x2 - x1) * 0.5 - (y2 - y1) * sqrt(3.0) / 2.0 + x1;
y3 = (y2 - y1) * 0.5 + (x2 - x1) * sqrt(3.0) / 2.0 + y1;
printf("(%.2f,%.2f)\n", x3, y3);
}
return ;
}

向量旋转 UPC 2217的更多相关文章

  1. sdut 2603:Rescue The Princess(第四届山东省省赛原题,计算几何,向量旋转 + 向量交点)

    Rescue The Princess Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Several days ago, a b ...

  2. POJ-2991 Crane(区间更新+向量旋转)

    题目大意:n个向量首尾相连,每次操作使某个区间中的所有向量都旋转同样的角度.每次操作后都回答最后一个向量的坐标. 题目分析:区间维护向量信息.向量旋转:x1=x0*cos(t)-y0*sin(t),y ...

  3. HDU 1700 Points on Cycle (几何 向量旋转)

    http://acm.hdu.edu.cn/showproblem.php?pid=1700 题目大意: 二维平面,一个圆的圆心在原点上.给定圆上的一点A,求另外两点B,C,B.C在圆上,并且三角形A ...

  4. UVA 11178 /// 向量旋转 两向量夹角

    题目大意: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  5. 简单几何(向量旋转+凸包+多边形面积) UVA 10652 Board Wrapping

    题目传送门 题意:告诉若干个矩形的信息,问他们在凸多边形中所占的面积比例 分析:训练指南P272,矩形面积长*宽,只要计算出所有的点,用凸包后再求多边形面积.已知矩形的中心,向量在原点参考点再旋转,角 ...

  6. “《编程珠玑》(第2版)第2章”:B题(向量旋转)

    B题是这样子的: 将一个n元一维向量向左旋转(即循环移位)i个位置.例如,当n=8且i=3时,向量abcdefgh旋转为defghabc.简单的代码使用一个n元的中间向量在n步内完成该工作.你能否仅使 ...

  7. Uva 11178 Morley's Theorem 向量旋转+求直线交点

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=9 题意: Morlery定理是这样的:作三角形ABC每个 ...

  8. n维向量旋转(循环移位)——学习《编程珠玑》

    问题: 将一个n元一维向量向左旋转i个位置.例如,当n=8且i=3时,向量abcdefgh旋转为defghabc. 简单的代码使用一个n元的中间向量在n步内完成该工作. 你能否仅使用数十个额外字节的存 ...

  9. osg指定向量旋转指定角度

    向量AB,沿着n旋转10度 osg::Vec3 left = AB*osg::Matrix::rotate(osg::inDegrees(10), n); osg::Vec3 right = AB*o ...

随机推荐

  1. iOS触摸事件处理--备用

    主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景. 一.处理机制 界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图.(2)然后在找到的视图里处理消息 ...

  2. 利用HTML5分片上传超大文件

    在网页中直接上传大文件一直是个比较头疼的问题,主要面临的问题一般包括两类:一是上传时间长中途一旦出错会导致前功尽弃:二是服务端配置复杂,要考虑接收超大表单和超时问题,如果是托管主机没准还改不了配置,默 ...

  3. 转:aptitude 命令详解

    原文:http://www.isspy.com/aptitude-%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/ aptitude aptitude 是 Debian GN ...

  4. c# appdomain

    http://www.cnblogs.com/Terrylee/archive/2005/11/28/285809.html

  5. Extjs通过structs2生成树结构

    Extjs为我们提供了强大的树的生成方式,我们不必通过原始的js去生成树形结构.在这里我做了一个简单的树结构生成.代码如下,同时在后台使用了fastjson-1.1.15.jar的jar包生成json ...

  6. Ubiquitous Religions(并查集)

    Description There are so many different religions in the world today that it is difficult to keep tr ...

  7. ZABBIX作集中式NGINX性能监控的注意要点

    今天测试好了.但有几个要点要注意. 一是出了问题看日志. 二是主动测试脚本. 三是注意LLD自动发现的ZABBIX类型(TRAPPER,捕捉器类型) 四是有主机上有问题时可以看到(UNSUPPORT) ...

  8. asp.net 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

    看MS给的解决方案:(http://support.microsoft.com/kb/312629/ ) 症状:如果使用 Response.End.Response.Redirect 或 Server ...

  9. 自己做的网页页面导航浏览JS/JQuery_版本2(优化边缘)

    版本2增加了宽宽的边界,边界内鼠标也可以导航.边界对应这HTML页面的边界.目前右下角有时会导致功能失效.版本1. 这次找了个更好的例子,实践中产生这个需求的真实例子,点我Demo. 需求: 版本1: ...

  10. GeoPandas官方中文文档--译著

    译自GeoPandas 0.1.0 文档(原版译著,有错误欢迎交流,转载请注明) GeoPandas是一个开源项目,它的目的是使得在Python下更方便的处理地理空间数据.GeoPandas扩展了pa ...