关闭

利用旋转矩阵简便旋转二位矢量(SDacm4A题解)

641人阅读 评论(1) 收藏 举报
分类:

题目原意是给你A,B两点坐标,让你求出逆时针的第三点C的坐标。

我这里运用旋转矩阵的方法,大大缩减代码量及code难度。

#include<stdio.h>
#include<math.h>
int main()
{
    double x1,x2,y1,y2,ansx,ansy;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
        double newx2,newy2;
        newx2=x2-x1;
        newy2=y2-y1;
        ansx=newx2*0.5-sqrt(3.0)/2.0*newy2;
        ansy=newx2*sqrt(3.0)/2.0+newy2*0.5;
        printf("(%.2lf,%.2lf)\n",(ansx+x1),(ansy+y1));
    }
    return 0;
}

首先将A点平移到坐标原点,B点坐标也按A点的平移大小进行平移,然后将B点以A点为中心逆时针旋转60.

在二维空间中,旋转可以用一个单一的角 θ 定义。作为约定,正角表示逆时针旋转。把笛卡尔坐标列向量关于原点逆时针旋转θ 的矩阵是:
该矩阵的逆矩阵为:
表示较原来反方向旋转θ ,也即顺时针旋转θ
注意,坐标表示成2*1规模的矩阵,展开就OK了。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

二维矩阵的旋转问题(二维数组作为函数参数)

题目:给定一幅有N*N矩阵表示的图像,其中每个像素的大小为4字节,编写一个方法,将图像旋转90度。不占用额外的存储空间能否做到? 思路:假设旋转是按照顺时针方向,那么右旋90度就是左移到上,上移到右,...
  • moses1213
  • moses1213
  • 2016-07-16 22:27
  • 1409

矩阵变换:沿任意轴旋转及其推导

1. 2D中绕原点旋转 设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量。 旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q` 即旋转矩阵R(θ)为 ...
  • zsq306650083
  • zsq306650083
  • 2013-04-08 19:30
  • 21311

单应矩阵计算旋转角和平移量

矩阵变换基础 三维变换
  • Kelvin_Yan
  • Kelvin_Yan
  • 2015-04-14 14:54
  • 3306

剑指offer 面试题20:顺时针打印矩阵及其变形(LeetCode54. Spiral Matrix旋转矩阵) 题解

剑指offer 面试题20:顺时针打印矩阵 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 ...
  • yanglr2010
  • yanglr2010
  • 2016-05-13 13:04
  • 1119

旋转矩阵转换为欧拉角

  • 2017-12-07 14:02
  • 189KB
  • 下载

旋转矩阵与四元数互算

  • 2015-04-23 11:11
  • 12KB
  • 下载

旋转矩阵、欧拉角、四元数比较.docx

  • 2015-08-20 16:26
  • 104KB
  • 下载

由旋转矩阵求欧拉角

  • 2015-09-06 20:40
  • 93KB
  • 下载

旋转矩阵的简单实现

  • 2011-12-01 17:50
  • 28KB
  • 下载

旋转矩阵到四元数源代码

  • 2010-02-26 17:24
  • 227B
  • 下载
    个人资料
    • 访问:71094次
    • 积分:1291
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:1篇
    • 译文:0篇
    • 评论:31条