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
  • 13945

关于3D场景中Camera的旋转

【本人初学,一点感悟,如有不当,请不吝指教】       很多人想达到3D场景中,基于鼠标控制的Camera任意角度旋转,其实不难,分为其下两步:一、基于鼠标移动过程的建模这一步,在于你是如何理解mo...
  • codingcrazy
  • codingcrazy
  • 2010年11月20日 17:22
  • 1508

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

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

点绕点旋转->点绕坐标轴旋转

最近看irrlicht源码,在include/core中的vector2d.h中有一个函数rotateBy()。其计算原理如下: // vector2d的一个成员函数 void rota...
  • birdflyto206
  • birdflyto206
  • 2016年04月07日 20:54
  • 1316

HDU 2898 空间点关于直线旋转

Problem Description 求空间中一个点绕一穿过原点的轴线旋转一定角度后的坐标,沿着旋转轴往原点看旋转的角度为顺时针(Angles are measured clockwise w...
  • YJX_xx
  • YJX_xx
  • 2014年05月02日 18:46
  • 982

三维空间里一个点绕坐标轴旋转

原地址:http://blog.csdn.net/qiuchangyong/archive/2010/09/02/5859628.aspx 在三维空间里一个点绕X轴 Y轴 Z轴旋转一定弧度后新的点的坐...
  • junjie020
  • junjie020
  • 2011年04月19日 11:13
  • 3417

三维空间绕坐标轴的旋转变换

 三维空间中的旋转变换比二维空间中的旋转变换复杂。除了需要指定旋转角外,还需指定旋转轴。     若以坐标系的三个坐标轴x,y,z分别作为旋转轴,则点实际上只在垂直坐标轴的平面上作二维旋转。此时用二维...
  • bingcaihuang
  • bingcaihuang
  • 2010年08月12日 10:17
  • 19022

三维坐标系的旋转矩阵

前言:非常感谢http://m.blog.csdn.net/blog/qiuqchen/21980731的总结和分享  ,让我再一次详细的学习了三维坐标中的选择矩阵推导过程。 为了方...
  • u012209626
  • u012209626
  • 2015年06月12日 20:57
  • 6416

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

参考链接:http://m.blog.csdn.net/blog/YJX_xx/24883665 实用代码函数: #include #include #include #include #incl...
  • sholck222
  • sholck222
  • 2015年07月24日 19:04
  • 998

曲线在三维空间的旋转计算以及Matlab实例实现

参考: http://blog.sina.com.cn/s/blog_61c0518f0100ungv.html http://www.cnblogs.com/graphics/archive/20...
  • piaoxuezhong
  • piaoxuezhong
  • 2017年03月17日 15:53
  • 1612
收藏助手
不良信息举报
您举报文章:hdu 2898 旋转 三维空间一点绕一轴旋转后坐标 几何
举报原因:
原因补充:

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