AnglePath3D

AnglePath3D[{{α1,β1,γ1},{α2,β2,γ2},}]

给出一个对象从 {0,0,0} 开始,按欧拉角 αiβiγi 连续转动获得的 轴方向,每次前进单位长度所得路径的三维坐标列表.

AnglePath3D[{{α1,β1},{α2,β2},}]

假定欧拉角 γi 为 0.

AnglePath3D[{mat1,mat2,}]

按三维旋转矩阵 mati 指定的进行转动.

AnglePath3D[{{r1,rot1},{r2,rot2},}]

前进长度依照 ri,欧拉角或旋转矩阵由 roti 指定.

AnglePath3D[{x0,y0,z0},steps]

从点 {x0,y0,z0} 开始.

AnglePath3D[{rot0},steps]

从由欧拉角或旋转矩阵 rot0 指定的 轴方向开始.

AnglePath3D[{{x0,y0,z0},rot0},steps]

从点 {x0,y0,z0} 开始,由 rot0 指定 轴方向.

AnglePath3D[init,steps,form]

form 指定的形式返回每一步的数据.

更多信息和选项

  • AnglePath3D 中连续转动的方向由连续的局部标架的 轴定义,可将其视为定义三维物体的朝向.
  • 缺省情况下,初始标架的朝向与坐标轴对齐.
  • 在每一步中,局部标架被旋转,路径向前沿新的标架中的 轴前进指定的距离.
  • 通常,三个角 {αi,βi,γi} 与欧拉旋转矩阵 EulerMatrix[{αi,βi,γi},{3,2,1}] 等价. 按照该约定,αi 可被视为经度角,βi 为纬度角,γi 为关于位移轴的旋转角.
  • 可以用 {{r1,rot1},{r2,rot2},} 来指定步长,或用 {{r1,r2,},{rot1,rot2,}} 来指定.
  • 对于由 mati 指定方向的步长 ri,通过 pi=pi-1+fi.{ri,0,0} 来得出下一个位置 pi={xi,yi,zi},其中,标架旋转矩阵 fifi=fi-1.matif0=mat0 给出.
  • AnglePath3D[steps,form] 等价于 AnglePath3D[{0,0,0},steps,form].
  • AnglePath3D[,form] 中,form 的可能选择包括:
  • "Position"直角坐标 {xi,yi,zi}(默认)
    "FrameMatrix"标架 fi 相对于 f0 的旋转矩阵
    "EulerMatrix"标架 fi 相对于 fi - 1 的旋转矩阵
    "FrameAngles"EulerAngles[fi,{3,2,1}]
    "EulerAngles"{αi,βi,γi}
    "Translation"TranslationTransform[{xi,yi,zi}]
    "Rotation"AffineTransform[fi]
    "RotationTranslation"AffineTransform[{fi,{xi,yi,zi}}]
    {form1,form2,}格式列表
  • 参数 initsteps 可以为符号. 它们也可以是 Quantity 对象.
  • AnglePath3D 有一个 WorkingPrecision 选项,确定了生成数字的精度.
  • 采用默认设置 WorkingPrecisionAutomatic 的情况下,只为相当短的路径的精确输入生成精确数字;对于较长的路径,将使用机器精度.

范例

打开所有单元关闭所有单元

基本范例  (6)

{0,0,0} 开始,沿 轴向前移动几个单位步长,每一步相对于局部的 轴旋转 90°

向前移动几个单位步长,相对于局部 轴把标架转动欧拉角 30°、30° 和 90°

每部移动不同的长度,相对于局部 轴把局部标架旋转欧拉角 90°

前进 20 步,每一步都相对于所有坐标轴把局部标架旋转欧拉角 100°

绘制螺旋线:

生成路径的变换函数:

对三角龙应用该函数:

使用符号输入:

范围  (22)

步进指定  (7)

产生具有三个欧拉角的单位步长路径,从位置 {0,0,0} 开始,方向为 轴:

产生具有两个欧拉角的单位步长路径:

AnglePath3D[{{α1,β1},{α2,β2},}] 假定第三个欧拉角为 0:

指定每步的步长:

可以同时给出,也可以分别给出每步的步长和方向:

使用三维旋转矩阵,而不是欧拉角:

在输入中使用 Quantity 对象:

路径初始化  (7)

产生从指定位置开始的路径:

通过给出三个欧拉角指定初始标架的朝向:

用两个欧拉角指定初始朝向:

用三维旋转矩阵指定初始朝向:

生成初始位置和初始朝向俱已指定的路径:

也可在第一步指定初始标架的朝向:

这两个路径是等价的:

在输入中使用 Quantity 对象:

数据格式  (8)

默认情况下,AnglePath3D 返回每个步骤到达点的位置:

计算每个局部标架相对于前一个局部标架的方位:

计算每个局部标架相对于整个标架的方位:

计算确定每个局部标架在整个标架中的朝向的欧拉角:

产生从初始位置开始的平移变换:

对椭球应用该变换:

产生相对于初始标架的旋转变换:

对椭球应用该变换:

产生从初始步骤开始的旋转-平移变换:

对椭球应用该变换:

用一个 AnglePath3D 命令产生不同格式的数据:

三个元素中的第一个是相对于前一个标架的欧拉旋转矩阵:

第二个元素是位置:

第三个元素是从初始标架开始的变换:

选项  (1)

WorkingPrecision  (1)

默认情况下,AnglePath3D 为较短路径的精确输入生成精确数字,对于较长的路径,则给出机器数字:

指定无穷大的精度将进行精确但较慢的计算:

在计算中使用指定的精度:

应用  (7)

点状对象的路径可视化  (5)

绘制 - 平面上的六边形:

绘制 - 平面上的八边形:

遍历立方体的所有顶点一次:

绘制三维螺旋线:

生成随机行走,其中相邻步骤方向改变大约 20° 的欧拉角:

生成随机行走,其中相邻步骤方向改变大约为 0 和 之间的欧拉角:

刚体的路径可视化  (2)

可视化刚体关于同一个轴做连续旋转的方位:

关于 轴:

同时生成每一步到达的位置:

关于 轴:

关于 轴:

飞经立方体的每个顶点一次:

沿同样的方向但采用不同的方位:

属性和关系  (5)

AnglePath3D[{{θ1,0,0},{θ2,0,0},}] 返回位于 - 平面上的路径:

所产生的路径等价于 AnglePath[{θ1,θ2,}] 所产生的路径:

指定欧拉角相当于指定 -- 欧拉矩阵:

指定初始欧拉角相当于指定初始l -- 欧拉矩阵:

通过把所有之前的相对欧拉旋转矩阵相乘,可以获得整体标架的旋转矩阵:

给定以下输入,计算路径的位置:

另外一种计算这些位置的方法是使用 "FrameMatrix" 格式:

互动范例  (1)

巧妙范例  (3)

动画显示在 - 平面上穿梭的航天飞机:

Wolfram Research (2017),AnglePath3D,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AnglePath3D.html (更新于 2019 年).

文本

Wolfram Research (2017),AnglePath3D,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AnglePath3D.html (更新于 2019 年).

CMS

Wolfram 语言. 2017. "AnglePath3D." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/AnglePath3D.html.

APA

Wolfram 语言. (2017). AnglePath3D. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AnglePath3D.html 年

BibTeX

@misc{reference.wolfram_2024_anglepath3d, author="Wolfram Research", title="{AnglePath3D}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/AnglePath3D.html}", note=[Accessed: 05-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_anglepath3d, organization={Wolfram Research}, title={AnglePath3D}, year={2019}, url={https://reference.wolfram.com/language/ref/AnglePath3D.html}, note=[Accessed: 05-November-2024 ]}