【问题标题】:Plot a rotated, translated circle in 3D space在 3D 空间中绘制一个旋转的平移圆
【发布时间】:2017-04-01 13:31:10
【问题描述】:

Here is a little image 从我目前的情况来看。目前我正在尝试绘制一个以前面的红色矢量为中心的圆圈。圆圈应该接触蓝色矢量。 但我可以自己调整参数(当然还有其他圈子)。

所以我想要一个通用的方法来在 3d 空间中绘制一个具有任意中心点并围绕任意轴旋转的圆

下面的代码是我目前的草稿。它围绕任意中心点绘制一个水平圆圈,但旋转部分仍然缺失。

set parametric
set urange [0:pi/2]
set vrange [0:2*pi]
 [..]
# radius
r = 0.1
# center (d,e,k) 
d = 0.1
e = 0.2
k = 0.3
fTx(u,v) = d+r*cos(v)
fTy(u,v) = e+r*sin(v)
fTz(u,v) = k         

splot [..]  ,\
      fTx(u,v), fTy(u,v), fTz(u,v)

【问题讨论】:

    标签: math plot gnuplot


    【解决方案1】:

    您可以使用rotation matrices 旋转圆的点。例如,对于围绕 x 轴旋转角度 th,点 (fTx, fTy, fTz)Rx(th) 相乘:

             ( 1     0         0    )
    Rx(th) = ( 0  cos(th)  -sin(th) )
             ( 0  sin(th)   cos(th) )
    

    对于旋转 th=24°,您的 Gnuplot 脚本可以扩展如下:

    th = 24.0*pi/180
    rotx(u,v) = fTx(u,v)
    roty(u,v) = cos(th)*fTy(u,v) - sin(th)*fTz(u,v)
    rotz(u,v) = sin(th)*fTy(u,v) + cos(th)*fTz(u,v)
    
    splot rotx(u,v), roty(u,v), rotz(u,v)
    

    绕另一个轴旋转是直线前进。

    再想一想这个主题,在将旋转的圆圈移动到(d, e, k)之前先旋转可能会更容易:

    set parametric
    set urange [0:pi/2]
    set vrange [0:2*pi]
    # radius
    r = 0.1
    # center (d,e,k)
    d = 0.1
    e = 0.2
    k = 0.3
    # rotation angles (th, ..)
    th = 24.0*pi/180.0
    
    fTx(u,v) = r*cos(v)
    fTy(u,v) = r*sin(v)
    fTz(u,v) = 0      
    
    rotx(u,v) = fTx(u,v)
    roty(u,v) = cos(th)*fTy(u,v) - sin(th)*fTz(u,v)
    rotz(u,v) = sin(th)*fTy(u,v) + cos(th)*fTz(u,v)
    
    movx(u,v) = d + rotx(u, v)
    movy(u,v) = e + roty(u, v)
    movz(u,v) = k + rotz(u, v)
    
    splot movx(u,v), movy(u,v), movz(u,v)
    

    【讨论】:

    • 首先非常感谢!它工作得近乎完美,数学不是一个神奇的黑匣子:) 我唯一担心的是,x 轴和 y 轴似乎被切换了。您的代码让我绕 y 轴 (i.imgur.com/FVM9XXM.png) 旋转,y 的矩阵让我绕 x 旋转。 (z 轴按预期工作)。你有什么想法可以从哪里来吗?
    • 不,我不知道。但我不会那么在意。我只会采用有效的矩阵或矩阵组合。也许我、你或 gnuplot 或维基百科中的一个人对 x 和 y 有不同的定义。或者我们所有人:)
    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多