hdu 2898 旋转 三维空间一点绕一轴旋转后坐标 几何

转载 2015年07月24日 19:04:13

参考链接:http://m.blog.csdn.net/blog/YJX_xx/24883665

实用代码函数:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
using namespace std;
float aa[4],bb[4];
float theta;
float  c;
float  s;
void Rotate_Point3D(float theta, float nx, float ny, float nz, float *aa, float *bb)
{
    float len = sqrtf(nx * nx + ny * ny + nz * nz); //单位化
    nx /= len;
    ny /= len;
    nz /= len;
    bb[0] = aa[0] * (nx * nx *(1-c)+ c)          +aa[1] *  (nx * ny * (1 - c)- nz * s)  +  aa[2] * (nx * nz * (1 - c) + ny * s);
    bb[1] = aa[0] * (nx * ny * (1 - c) + nz * s)  +aa[1] * (ny * ny * (1 - c) + c)        +  aa[2] * (ny * nz * (1 - c) - nx * s);
    bb[2] = aa[0] * (nx * nz * (1 - c) - ny * s) +aa[1] * (ny * nz * (1 -c) + nx *s)      +  aa[2] * (nz * nz * (1 - c) + c);
}
int main()
{
    float nx,ny,nz;
    while(cin>>aa[0]>>aa[1]>>aa[2])
    {
        cin>>nx>>ny>>nz;
        cin>>theta;
        c=cosf(theta);
        s=sinf(theta);
        Rotate_Point3D(theta,nx,ny,nz,aa,bb);
        cout<<setiosflags(ios::fixed)<<setprecision(3)<<bb[0]<<' '<<bb[1]<<' '<<bb[2]<<endl;
    }

}


三维空间里一个点绕矢量旋转后的新的点的坐标

在三维空间里一个点绕X轴 Y轴 Z轴旋转一定弧度后新的点的坐标是容易计算的,问题是如果它所绕的旋转轴是一个任意矢量(x,y,z)的话,怎么知道旋转angle弧度后新的点的坐标呢? 在OPENGL里有一...
  • qiuchangyong
  • qiuchangyong
  • 2010年09月02日 19:00
  • 13043

一个 点绕另一个点旋转后的坐标

x1=x0cosn-y0sinny1=x0sinn+y0cosn
  • zhanzhaozhangxiaoyi
  • zhanzhaozhangxiaoyi
  • 2015年04月25日 18:09
  • 353

绕任意轴旋转的矩阵推导

绕任意轴旋转的矩阵推导   左手坐标系下,一点绕任意轴旋转θ角的右乘矩阵: 其中C为cosθ,S为sinθ,A为单位化的旋转轴 以下推导均为左手坐标   首先我们将P看成从原点出发的自由向量,将其...
  • aa20274270
  • aa20274270
  • 2015年12月03日 16:07
  • 1955

三维坐标旋转矩阵

1.三维坐标旋转矩阵的推导过程任何维的旋转可以表述为向量与合适尺寸的方阵的乘积。最终一个旋转等价于在另一个不同坐标系下对点位置的重新表述。 坐标系旋转角度θ则等同于将目标点围绕坐标原点反方向旋转同...
  • lz20120808
  • lz20120808
  • 2016年03月05日 20:48
  • 6639

空间向量绕任意轴旋转推导

空间向量绕任意轴旋转推导 From: http://www.zoditech.com/article.asp?id=14 左手坐标系下,一点绕任意轴旋转θ角的右乘矩阵: ...
  • ZGJORSON
  • ZGJORSON
  • 2013年05月12日 20:33
  • 2291

空间三维点绕任意空间直线旋转

绕任意轴旋转的情况比较复杂,主要分为两种情况,一种是平行于坐标轴的,一种是不平行于坐标轴的,对于平行于坐标轴的,我们首先将旋转轴平移至与坐标轴重合,然后进行旋转,最后再平移回去。 将旋转轴平移至...
  • dfdfdsfdfdfdf
  • dfdfdsfdfdfdf
  • 2016年11月14日 11:41
  • 2645

绕任意轴旋转的推导

万丈高楼平地起;勿在浮沙筑高台。 暂时放下其他的东西的学习,还不能称之为学习。潜心研究pbrt,看到第二章绕任意轴的旋转一部分,但是只是给了一个大体的推导,最终的推导并没有给出,所以在此做一...
  • pizi0475
  • pizi0475
  • 2015年07月08日 10:27
  • 1760

绕任意向量旋转分解到坐标系旋转

如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 一、原理解析 假设向量为(x,y,z),旋转角度为θ。 绕任意向量旋转的过程分...
  • itas109
  • itas109
  • 2015年06月26日 16:04
  • 2993

判断三维坐标系旋转正方向的简单方法

判断三维坐标系旋转正方向的简单方法 更多0 的 方向 判断 坐标 方法 简单 引言 做iOS开发,不免要接触到一些特效,其中不乏3D特效,这时候就要对iOS所使用的坐标系了...
  • yongyinmg
  • yongyinmg
  • 2014年08月21日 11:49
  • 20940

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

1. 2D中绕原点旋转 设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量。 旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q` 即旋转矩阵R(θ)为 ...
  • zsq306650083
  • zsq306650083
  • 2013年04月08日 19:30
  • 21427
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu 2898 旋转 三维空间一点绕一轴旋转后坐标 几何
举报原因:
原因补充:

(最多只允许输入30个字)