文章目录

  • 一、问题描述
  • 二、推导步骤
  • 三、MATLABMATLABMATLAB代码
  • 四、总结

一、问题描述

  对于三维空间任意一点P(px,py,pz)P(p_x,p_y,p_z)P(px​,py​,pz​),求绕任意轴线旋转角度α\alphaα得到新的点P′(px′,py′,pz′)P'(p'_x,p'_y,p'_z)P′(px′​,py′​,pz′​)。轴线的单位方向向量为n^(nx2+ny2+nz2=1)\bm{\hat{n}}(n_x^2+n_y^2+n_z^2=1)n^(nx2​+ny2​+nz2​=1),且过点Q(x0,y0,z0)Q(x_0,y_0,z_0)Q(x0​,y0​,z0​)。

二、推导步骤

  轴线n^\bm{\hat{n}}n^在坐标系XYZXYZXYZ下的直线方程为:
{x=x0+nxty=y0+nytz=z0+nzt(1)\left\{ \begin{array}{c} x=x_0+n_xt \\ y=y_0+n_yt \\ \tag 1 z=z_0+n_zt\end{array}\right. ⎩⎨⎧​x=x0​+nx​ty=y0​+ny​tz=z0​+nz​t​(1)
  弧PP′PP'PP′所在平面在坐标系XYZXYZXYZ下的平面方程为:
nx(x−px)+ny(y−py)+nz(z−pz)=0(2)n_x(x-p_x)+ n_y(y-p_y)+ n_z(z-p_z)=0 \tag 2 nx​(x−px​)+ny​(y−py​)+nz​(z−pz​)=0(2)
  根据式(1)和式(2),且nx2+ny2+nz2=1n_x^2+n_y^2+n_z^2=1nx2​+ny2​+nz2​=1,可以求得:
t0=nx(px−x0)+ny(py−y0)+nz(pz−z0)(3)t_0 = n_x(p_x - x_0) + n_y(p_y - y_0) + n_z(p_z -z_0) \tag 3 t0​=nx​(px​−x0​)+ny​(py​−y0​)+nz​(pz​−z0​)(3)
  设弧PP′PP'PP′的圆心在坐标系XYZXYZXYZ下的坐标为(xc,yc,zc)(x_c,y_c,z_c)(xc​,yc​,zc​),将t0t_0t0​代入式(1)(1)(1),得圆心坐标:
{xc=x0+nxt0yc=y0+nyt0zc=z0+nzt0(4)\left\{ \begin{array}{c} x_c=x_0+n_xt_0 \\ y_c=y_0+n_yt_0 \\ \tag 4 z_c=z_0+n_zt_0\end{array}\right. ⎩⎨⎧​xc​=x0​+nx​t0​yc​=y0​+ny​t0​zc​=z0​+nz​t0​​(4)
  圆半径rrr:
r=(px−xc)2+(py−yc)2+(pz−zc)2(5)r = \sqrt{(p_x-x_c)^2 + (p_y-y_c)^2 + (p_z-z_c)^2} \tag 5 r=(px​−xc​)2+(py​−yc​)2+(pz​−zc​)2​(5)
  向量OP\bm{OP}OP:
OP=[px−xcpy−ycpz−zc]T/r(6)\bm{OP}=[p_x-x_c \ \ p_y-y_c \ \ p_z-z_c]^T / r \tag 6 OP=[px​−xc​  py​−yc​  pz​−zc​]T/r(6)
  如上图,建立坐标系x′y′z′x'y'z'x′y′z′,根据右手法则:
y′=[nxnynz]T×OP(7)\bm{y'}=[n_x\ \ n_y\ \ n_z]^T\times \bm{OP}\tag 7 y′=[nx​  ny​  nz​]T×OP(7)
  坐标系x′y′z′x'y'z'x′y′z′与坐标系XYZXYZXYZ的旋转变换矩阵为:
R3×3=[OPy′n^](8)R_{3\times3}=[\bm{OP}\ \ \bm{y'}\ \ \bm{\hat{n}} ]\tag 8 R3×3​=[OP  y′  n^](8)
  点P′P'P′在坐标系x′y′z′x'y'z'x′y′z′的坐标为:
{xtemp=rcos(α)ytemp=rsin(α)ztemp=0(9)\left\{ \begin{array}{c} x_{temp}=rcos(\alpha) \\ y_{temp}=rsin(\alpha) \\ \tag 9 z_{temp}=0 \\ \end{array}\right. ⎩⎨⎧​xtemp​=rcos(α)ytemp​=rsin(α)ztemp​=0​(9)
  利用齐次变换,将点P′P'P′在坐标系x′y′z′x'y'z'x′y′z′的坐标变换到坐标系XYZXYZXYZ的坐标:
[px′py′pz′1]=[R11R12R13xcR21R22R23ycR31R32R33zc0001][xtempytempztemp1](10)\left[ \begin{matrix} p'_x \\ p'_y \\ p'_z \\ 1 \end{matrix} \right] = \left[ \begin{matrix} R_{11} & R_{12} & R_{13} & x_c \\ R_{21} & R_{22} & R_{23} & y_c \\ R_{31} & R_{32} & R_{33} & z_c \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \left[ \begin{matrix} x_{temp} \\ y_{temp} \\ z_{temp} \\ 1 \end{matrix} \right] \tag{10} ⎣⎢⎢⎡​px′​py′​pz′​1​⎦⎥⎥⎤​=⎣⎢⎢⎡​R11​R21​R31​0​R12​R22​R32​0​R13​R23​R33​0​xc​yc​zc​1​⎦⎥⎥⎤​⎣⎢⎢⎡​xtemp​ytemp​ztemp​1​⎦⎥⎥⎤​(10)

  化简式(10)(10)(10)得:
{px′=R11xtemp+R12ytemp+xcpy′=R21xtemp+R22ytemp+ycpz′=R31xtemp+R32ytemp+zc(11)\left\{ \begin{array}{c} p'_x=R_{11}x_{temp}+R_{12}y_{temp}+ x_c\\ p'_y=R_{21}x_{temp}+R_{22}y_{temp}+ y_c\\ p'_z=R_{31}x_{temp}+R_{32}y_{temp}+ z_c \tag{11} \end{array}\right. ⎩⎨⎧​px′​=R11​xtemp​+R12​ytemp​+xc​py′​=R21​xtemp​+R22​ytemp​+yc​pz′​=R31​xtemp​+R32​ytemp​+zc​​(11)

  式(11)(11)(11)可以展开,并写成:
[px′py′pz′1]=T4×4[pxpypz1](12)\left[ \begin{matrix} p'_x \\ p'_y \\ p'_z \\ 1 \end{matrix} \right] = T_{4\times4} \left[ \begin{matrix} p_x \\ p_y \\ p_z \\ 1 \end{matrix} \right]\tag{12} ⎣⎢⎢⎡​px′​py′​pz′​1​⎦⎥⎥⎤​=T4×4​⎣⎢⎢⎡​px​py​pz​1​⎦⎥⎥⎤​(12)

T4×4=[nx2K+cos(α)nxnyK−nzsin(α)nxnzK+nysin(α)(x0−nxM)K+(nzy0−nyz0)sin(α)nxnyK+nzsin(α)ny2K+cos(α)nynzK−nxsin(α)(y0−nyM)K+(nxz0−nzx0)sin(α)nxnzK−nysin(α)nynzK+nxsin(α)nz2K+cos(α)(z0−nzM)K+(nyx0−nxy0)sin(α)0001]T_{4\times4}=\left[ \begin{matrix} n_x^2 K + cos(\alpha) & n_x n_yK - n_z sin(\alpha) & n_xn_z K + n_y sin(\alpha) & (x_0 - n_xM)K + (n_zy_0 - n_yz_0)sin(\alpha) \\ n_xn_yK + n_zsin(\alpha) & n_y^2 K + cos(\alpha) & n_yn_zK - n_xsin(\alpha) & (y_0 - n_yM)K + (n_xz_0 - n_zx_0)sin(\alpha) \\ n_xn_zK - n_ysin(\alpha) & n_yn_zK + n_xsin(\alpha) & n_z^2K + cos(\alpha) & (z_0 - n_zM)K + (n_yx_0 - n_xy_0)sin(\alpha) \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \\ T4×4​=⎣⎢⎢⎡​nx2​K+cos(α)nx​ny​K+nz​sin(α)nx​nz​K−ny​sin(α)0​nx​ny​K−nz​sin(α)ny2​K+cos(α)ny​nz​K+nx​sin(α)0​nx​nz​K+ny​sin(α)ny​nz​K−nx​sin(α)nz2​K+cos(α)0​(x0​−nx​M)K+(nz​y0​−ny​z0​)sin(α)(y0​−ny​M)K+(nx​z0​−nz​x0​)sin(α)(z0​−nz​M)K+(ny​x0​−nx​y0​)sin(α)1​⎦⎥⎥⎤​
  其中,K=1−cos(α),M=nxx0+nyy0+nzz0K = 1 - cos(\alpha),M = n_xx_0 + n_yy_0 + n_zz_0K=1−cos(α),M=nx​x0​+ny​y0​+nz​z0​

三、MATLABMATLABMATLAB代码

clc;
clear;syms t nx ny nz px py pz alpha x0 y0 z0 real
syms tx ty tz axisFlag real% axisFlag = 1 : x轴
% axisFlag = 2 : y轴
% axisFlag = 3 : z轴
% axisFlag = 4 : 过点(0,ty,tz)且平行x轴
% axisFlag = 5 : 过点(tx,0,tz)且平行y轴
% axisFlag = 6 : 过点(tx,ty,0)且平行z轴
% axisFlag = 7 : 过点(0,0,0)且单位方向向量为[nx ny nz]
% axisFlag = 8 : 过点(tx,ty,tz)且单位方向向量为[nx ny nz]axisFlag = 8;
switch axisFlagcase 1x0 = 0;y0 = 0;z0 = 0;nx = 1;ny = 0;nz = 0;case 2x0 = 0;y0 = 0;z0 = 0;nx = 0;ny = 1;nz = 0;case 3x0 = 0;y0 = 0;z0 = 0;nx = 0;ny = 0;nz = 1;case 4x0 = 0;y0 = ty;z0 = tz;nx = 1;ny = 0;nz = 0;case 5x0 = tx;y0 = 0;z0 = tz;nx = 0;ny = 1;nz = 0;case 6x0 = tx;y0 = ty;z0 = 0;nx = 0;ny = 0;nz = 1;case 7x0 = 0;y0 = 0;z0 = 0;case 8x0 = tx;y0 = ty;z0 = tz;otherwisereturn;
end%{
x = nx * t + x0;
y = ny * t + y0;
z = nz * t + z0;
t0 = solve(nx * (x - px) + ny * (y - py) + nz * (z - pz) == 0, t)
%}t0 = nx * (px - x0) + ny * (py - y0) + nz * (pz - z0);
xc = x0 + nx * t0;
yc = y0 + ny * t0;
zc = z0 + nz * t0;
r = sqrt((px - xc)^2 + (py - yc)^2 + (pz - zc)^2);OP = [px - xc; py - yc; pz - zc] / r;
yVector = cross([nx; ny; nz], OP);
R = [OP, yVector, [nx; ny; nz]];xtemp = r * cos(alpha);
ytemp = r * sin(alpha);
p = [R(1,1) * xtemp + R(1,2) * ytemp + xcR(2,1) * xtemp + R(2,2) * ytemp + ycR(3,1) * xtemp + R(3,2) * ytemp + zc];
p = [simplify(p(1)); simplify(p(2)); simplify(p(3))]%% 写成矩阵形式,并验证结果正确性
K = 1 - cos(alpha);
M = nx * x0 + ny * y0 + nz * z0;
T = [nx^2 * K + cos(alpha),  nx * ny * K - nz * sin(alpha),  nx * nz * K + ny * sin(alpha),  (x0 - nx * M) * K + (nz * y0 - ny * z0) * sin(alpha)nx * ny * K + nz * sin(alpha),  ny^2 * K + cos(alpha),  ny * nz * K - nx * sin(alpha),  (y0 - ny * M) * K + (nx * z0 - nz * x0) * sin(alpha)nx * nz * K - ny * sin(alpha),  ny * nz * K + nx * sin(alpha),  nz^2 * K + cos(alpha),  (z0 - nz * M) * K + (ny * x0 - nx * y0) * sin(alpha)0, 0, 0, 1]res = simplify([nx^2 * K + cos(alpha),  nx * ny * K - nz * sin(alpha),  nx * nz * K + ny * sin(alpha),  (x0 - nx * M) * K + (nz * y0 - ny * z0) * sin(alpha)nx * ny * K + nz * sin(alpha),  ny^2 * K + cos(alpha),  ny * nz * K - nx * sin(alpha),  (y0 - ny * M) * K + (nx * z0 - nz * x0) * sin(alpha)nx * nz * K - ny * sin(alpha),  ny * nz * K + nx * sin(alpha),  nz^2 * K + cos(alpha),  (z0 - nz * M) * K + (ny * x0 - nx * y0) * sin(alpha)0, 0, 0, 1] * [px; py; pz; 1] - [p(1); p(2); p(3); 1])

四、总结

  本文算法的结论具有普遍性,当轴线的单位方向向量n^\bm{\hat{n}}n^和经过的点Q(x0,y0,z0)Q(x_0,y_0,z_0)Q(x0​,y0​,z0​)取特殊值时,可以得到许多很有用的结论。
  1.当旋转轴为xxx轴,则(x0,y0,z0)=(0,0,0),(nx,ny,nz)=(1,0,0)(x_0,y_0,z_0)=(0,0,0),(n_x,n_y,n_z)=(1,0,0)(x0​,y0​,z0​)=(0,0,0),(nx​,ny​,nz​)=(1,0,0)时,
T4×4=[10000cos(α)−sin(α)00sin(α)cos(α)00001](13)T_{4\times4}=\left[ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & cos(\alpha) & -sin(\alpha) & 0 \\ 0 & sin(\alpha) & cos(\alpha) & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{13} T4×4​=⎣⎢⎢⎡​1000​0cos(α)sin(α)0​0−sin(α)cos(α)0​0001​⎦⎥⎥⎤​(13)
  2.当旋转轴为yyy轴,则(x0,y0,z0)=(0,0,0),(nx,ny,nz)=(0,1,0)(x_0,y_0,z_0)=(0,0,0),(n_x,n_y,n_z)=(0,1,0)(x0​,y0​,z0​)=(0,0,0),(nx​,ny​,nz​)=(0,1,0)时,
T4×4=[cos(α)0sin(α)00100−sin(α)0cos(α)00001](14)T_{4\times4}=\left[ \begin{matrix} cos(\alpha) & 0 & sin(\alpha) & 0 \\ 0 & 1 & 0 & 0 \\ -sin(\alpha) & 0 & cos(\alpha) & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{14} T4×4​=⎣⎢⎢⎡​cos(α)0−sin(α)0​0100​sin(α)0cos(α)0​0001​⎦⎥⎥⎤​(14)
  3.当旋转轴为zzz轴,则(x0,y0,z0)=(0,0,0),(nx,ny,nz)=(0,0,1)(x_0,y_0,z_0)=(0,0,0),(n_x,n_y,n_z)=(0,0,1)(x0​,y0​,z0​)=(0,0,0),(nx​,ny​,nz​)=(0,0,1)时,
T4×4=[cos(α)−sin(α)00sin(α)cos(α)0000100001](15)T_{4\times4}=\left[ \begin{matrix} cos(\alpha) & -sin(\alpha) & 0 & 0 \\ sin(\alpha) & cos(\alpha) & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{15} T4×4​=⎣⎢⎢⎡​cos(α)sin(α)00​−sin(α)cos(α)00​0010​0001​⎦⎥⎥⎤​(15)
  4.当旋转轴过点(0,ty,tz)(0,t_y,t_z)(0,ty​,tz​)且平行于xxx轴,则(x0,y0,z0)=(0,ty,tz),(nx,ny,nz)=(1,0,0)(x_0,y_0,z_0)=(0,t_y,t_z),(n_x,n_y,n_z)=(1,0,0)(x0​,y0​,z0​)=(0,ty​,tz​),(nx​,ny​,nz​)=(1,0,0)时,
T4×4=[10000cos(α)−sin(α)tyK+tzsin(α)0sin(α)cos(α)tzK−tysin(α)0001](16)T_{4\times4}=\left[ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & cos(\alpha) & -sin(\alpha) & t_yK+t_zsin(\alpha) \\ 0 & sin(\alpha) & cos(\alpha) & t_zK-t_ysin(\alpha) \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{16} T4×4​=⎣⎢⎢⎡​1000​0cos(α)sin(α)0​0−sin(α)cos(α)0​0ty​K+tz​sin(α)tz​K−ty​sin(α)1​⎦⎥⎥⎤​(16)
  5.当旋转轴过点(tx,0,tz)(t_x,0,t_z)(tx​,0,tz​)且平行于yyy轴,则(x0,y0,z0)=(tx,0,tz),(nx,ny,nz)=(0,1,0)(x_0,y_0,z_0)=(t_x,0,t_z),(n_x,n_y,n_z)=(0,1,0)(x0​,y0​,z0​)=(tx​,0,tz​),(nx​,ny​,nz​)=(0,1,0)时,
T4×4=[cos(α)0sin(α)txK−tzsin(α)0100−sin(α)0cos(α)tzK+txsin(α)0001](17)T_{4\times4}=\left[ \begin{matrix} cos(\alpha) & 0 & sin(\alpha) & t_xK- t_zsin(\alpha) \\ 0 & 1 & 0 & 0 \\ -sin(\alpha) & 0 & cos(\alpha) & t_zK + t_xsin(\alpha)\\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{17} T4×4​=⎣⎢⎢⎡​cos(α)0−sin(α)0​0100​sin(α)0cos(α)0​tx​K−tz​sin(α)0tz​K+tx​sin(α)1​⎦⎥⎥⎤​(17)
  6.当旋转轴过点(tx,ty,0)(t_x,t_y,0)(tx​,ty​,0)且平行于zzz轴,则(x0,y0,z0)=(tx,ty,0),(nx,ny,nz)=(0,0,1)(x_0,y_0,z_0)=(t_x,t_y,0),(n_x,n_y,n_z)=(0,0,1)(x0​,y0​,z0​)=(tx​,ty​,0),(nx​,ny​,nz​)=(0,0,1)时,
T4×4=[cos(α)−sin(α)0txK+tysin(α)sin(α)cos(α)0tyK−txsin(α)00100001](18)T_{4\times4}=\left[ \begin{matrix} cos(\alpha) & -sin(\alpha) & 0 & t_xK+t_ysin(\alpha)\\ sin(\alpha) & cos(\alpha) & 0 & t_yK- t_xsin(\alpha)\\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{18} T4×4​=⎣⎢⎢⎡​cos(α)sin(α)00​−sin(α)cos(α)00​0010​tx​K+ty​sin(α)ty​K−tx​sin(α)01​⎦⎥⎥⎤​(18)
  7.当旋转轴过原点(0,0,0)(0,0,0)(0,0,0),则(x0,y0,z0)=(0,0,0)(x_0,y_0,z_0)=(0,0,0)(x0​,y0​,z0​)=(0,0,0)时,
T4×4=[nx2K+cos(α)nxnyK−nzsin(α)nxnzK+nysin(α)0nxnyK+nzsin(α)ny2K+cos(α)nynzK−nxsin(α)0nxnzK−nysin(α)nynzK+nxsin(α)nz2K+cos(α)00001](19)T_{4\times4}=\left[ \begin{matrix} n_x^2 K + cos(\alpha) & n_x n_yK - n_z sin(\alpha) & n_xn_z K + n_y sin(\alpha) & 0 \\ n_xn_yK + n_zsin(\alpha) & n_y^2 K + cos(\alpha) & n_yn_zK - n_xsin(\alpha) & 0 \\ n_xn_zK - n_ysin(\alpha) & n_yn_zK + n_xsin(\alpha) & n_z^2K + cos(\alpha) & 0 \\ 0 & 0 & 0 & 1 \\ \end{matrix} \right] \tag{19} T4×4​=⎣⎢⎢⎡​nx2​K+cos(α)nx​ny​K+nz​sin(α)nx​nz​K−ny​sin(α)0​nx​ny​K−nz​sin(α)ny2​K+cos(α)ny​nz​K+nx​sin(α)0​nx​nz​K+ny​sin(α)ny​nz​K−nx​sin(α)nz2​K+cos(α)0​0001​⎦⎥⎥⎤​(19)
  T4×4T_{4\times4}T4×4​的前333行333列就是将三维旋转的轴-角表示转化为旋转矩阵表示:
R3×3=[nx2K+cos(α)nxnyK−nzsin(α)nxnzK+nysin(α)nxnyK+nzsin(α)ny2K+cos(α)nynzK−nxsin(α)nxnzK−nysin(α)nynzK+nxsin(α)nz2K+cos(α)](20)R_{3\times3}=\left[ \begin{matrix} n_x^2 K + cos(\alpha) & n_x n_yK - n_z sin(\alpha) & n_xn_z K + n_y sin(\alpha)\\ n_xn_yK + n_zsin(\alpha) & n_y^2 K + cos(\alpha) & n_yn_zK - n_xsin(\alpha) \\ n_xn_zK - n_ysin(\alpha) & n_yn_zK + n_xsin(\alpha) & n_z^2K + cos(\alpha) \\ \end{matrix} \right] \tag{20} R3×3​=⎣⎡​nx2​K+cos(α)nx​ny​K+nz​sin(α)nx​nz​K−ny​sin(α)​nx​ny​K−nz​sin(α)ny2​K+cos(α)ny​nz​K+nx​sin(α)​nx​nz​K+ny​sin(α)ny​nz​K−nx​sin(α)nz2​K+cos(α)​⎦⎤​(20)
  其中,K=1−cos(α)K = 1 - cos(\alpha)K=1−cos(α)

三维空间任意一点绕任意轴线旋转相关推荐

  1. 计算圆弧上任意一点绕圆心旋转α角度后的新点坐标

    假设任意一点坐标为(x,y),圆心坐标为(Cx,Cy),旋转角度为α,新坐标为(x1,y1); 求(x1,y1)公式如下 x1 = (x-Cx)*Cos(α) - (y-Cy)*sin(α) + Cx ...

  2. 旋转——绕原点二维旋转,绕任意点的二维旋转,三维基本旋转,绕任意轴的三维旋转

    1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换. ...

  3. CocosCreator | 绕任意轴旋转/绕任意点旋转/平滑旋转/自定义环形体、胶囊体/面向目标位置

    01 效果演示 Cocos Creator 版本:3.4.1 该 demo 演示了行星自转(绕任意轴旋转).行星公转(绕任意点旋转).镜头拉近/复位(平滑旋转).行星环(自定义环形体).行星轴(自定义 ...

  4. 二维绕任意点旋转_二维图形复合线性变换程序设计:三角形绕任意点旋转2wfhbh...

    第七讲:二维图形复合线性变换程序设计: 例题:三角形绕任意点旋转. 组合变换为: ( 1 )平移变换 ( 2 )旋转变换 ( 3 )平移变换 #include #include #define PAI ...

  5. 三维空间中曲线绕任意轴旋转所得的旋转曲面求法

    三维空间中曲线绕任意轴旋转所得的旋转曲面求法 对2023汤家凤考研高等数学讲义225页2.三维空间直线旋转曲面的解释和推广 ©️ sylvanding

  6. open3d显示pcd点云并读取任意点的坐标+生成点云绕任意轴旋转的transformation matrix

    为了对点云进行旋转操作,达到各点云之间不对齐的效果,找到了生成点云绕任意轴旋转的矩阵的代码. 链接: https://blog.csdn.net/u010848251/article/details/ ...

  7. matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形

    x=1:0.1:10; y=sin(x); c=cosd(15); s=sind(15); X=x*c-y*s; Y=x*s+y*c; plot(x,y) hold on plot(X,Y) 这就是新 ...

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

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 一.原理解析 假设向量为(a,b,c),旋转角度为θ. 绕任意向量旋转的过程分解如下: ...

  9. 三维坐标点绕任意轴旋转的新坐标计算

    任意轴可以用一个起点一个方向向量来表示.那么绕任意轴旋转就可以先将此轴移到通过原点,然后再旋转,再将旋转完的新坐标做反向平移. 则问题化为 计算绕通过原点的向量旋转任意角度后的新点.假设单位向量为(r ...

  10. VTK笔记-几何变换-绕任意轴旋转

    绕任意轴旋转思路 中心轴与坐标轴平行   1.将旋转轴平移与坐标轴重合,物体也做平移操作:   2.物体绕坐标轴旋转:   3.执行步骤1的逆操作,将旋转轴平移回到原来位置,物体也对应平移: 中心轴与 ...

最新文章

  1. python读取csv文件的方法-python读写csv文件的方法
  2. 23种设计模式及其对应实例-转
  3. Intellij IDEA神器居然还有这些小技巧
  4. Angular里使用createEmbeddedView动态加入新的模板元素
  5. abaqus实例_使用Python在ABAQUS中创建XYData数据
  6. body div js 放大图片_jquery图片放大插件鼠标悬停图片放大效果
  7. python数据结构剑指offer-替换空格
  8. NP问题验证机的理解
  9. 兄弟打印机内存已满清零方法_兄弟打印机全部清零操作方法
  10. 使用Web3j(JAVA)开发ETH钱包-1
  11. 【渝粤教育】电大中专建筑施工技术作业 题库
  12. 一层神经网络实现鸢尾花数据集分类
  13. 【03】Linux笔记
  14. 概要设计与详细设计分别要做什么
  15. 国际服服务器怎么换账号吗,战争雷霆国际服怎么切换账号 | 手游网游页游攻略大全...
  16. SQL巩固以及数据库、表结构优化
  17. 弘辽科技:拼多多批发单算销量吗?拼多多刚开店怎么有销量
  18. 一、LCD12864(带字库的)使用教程:
  19. [ 云原生之谜 ] 云原生背景 定义 相关技术详解?
  20. 逻辑备份和物理备份表级恢复

热门文章

  1. 19款探岳刷隐藏教程_19款探岳怎么选,小编在此支你几招 拿起小本本记住了
  2. 如何远程操作另一台电脑,看这里就够了,远程控制另一台电脑的操作
  3. RN通信底层原理 -- 总结篇
  4. informix和mysql对接_优化Informix数据库访问
  5. Sphinx语法设置
  6. linux ubuntu设置中文,ubuntu 中文设置 (LANG设置)
  7. 《涨知识啦34》-LED器件的I-V特性曲线
  8. 人工智能救灾减灾应用_Bluemixathon挑战的前5个救灾应用程序
  9. 特发性震颤为什么在喝酒后症状消失?
  10. linux中的sh、dash、bash的区别