Documentation Center

  • Trial Software
  • Product Updates

Axis, AxisX, AxisY, AxisZ

Rotation axis

Value Summary

AxisLibrary wrapper for "[AxisX, AxisY, AxisZ]" (3D)List of 2 or 3 expressions, depending on the dimension
AxisX, AxisY, AxisZOptionalMuPAD® expression

Graphics Primitives

ObjectsDefault Values
plot::Rotate3d

Axis: [0, 0, 1]

AxisX, AxisY: 0

AxisZ: 1

Description

Axis is a vector determining the direction of the rotation axis in rotation objects of type plot::Rotate3d. It is given by a list of 3 components.

AxisX etc. refer to the x, y, z components of this vector.

A rotation in 3D is determined by a line around which is rotated. The line is given by a point on the line (the Center) and a direction vector (the Axis). The rotation angle is given by the attribute Angle.

The length of the Axis vector is of no relevance. However, it should not be zero.

The rotation is implemented following the "right hand rule": Stretch the thumb of your right hand and bend the fingers. When the thumb points into the direction of the rotation axis, your finger tips indicate the direction of the rotation. Use negative angles to rotate in the opposite direction or replace the Axis vector by its negative.

Examples

Example 1

A cone is first rotated around the x-axis. The rotated cone is then rotated around the z-axis:

c0 := plot::Cone(1, [0, 0, 1], [0, 0, 2]):
c1 := plot::Rotate3d(c0, Center = [0, 0, 0],
                     Axis = [1, 0, 0], Angle = PI/2):
c2 := plot::Rotate3d(c1, Center = [0, 0, 0],
                     Axis = [0, 0, 1], Angle = PI/2):
plot(plot::Scene3d(c0, Axes = Origin, 
                   ViewingBox = [-2..2, -2..2, -2..2]),
     plot::Scene3d(c1, Axes = Origin,
                   ViewingBox = [-2..2, -2..2, -2..2]),
     plot::Scene3d(c2, Axes = Origin,
                   ViewingBox = [-2..2, -2..2, -2..2]),
     TicksNumber = None,
     Width = 120*unit::mm, Height = 40*unit::mm,
     Layout = Horizontal):

delete c0, c1, c2:

Example 2

We illustrate the "right hand rule". A small box b0 is rotated. The rotated copies b1, b2, b3 are plotted together with the original box:

center := [1, 4, 1]:
axis := [0, 0, 1]:
b0 := plot::Box(0.9..1.1, 2.9 .. 3.1, 0.9 .. 1.1):
b1 := plot::Rotate3d(b0, Center = center, Axis = axis,
                     Angle = PI/8):
b2 := plot::Rotate3d(b1, Center = center, Axis = axis,
                     Angle = PI/8):
b3 := plot::Rotate3d(b2, Center = center, Axis = axis,
                     Angle = PI/8):
centerplusaxis := [center[i] + axis[i] $ i = 1..3]:
plot(b0, b1, b2, b3, 
     plot::Arrow3d([0, 0, 0], center, Color = RGB::Black,
                   Title = "Center", 
                   TitlePosition = [0.1, 2, 0.5]),
     plot::Arrow3d(center, centerplusaxis, 
                   Title = "Axis", Color = RGB::Red,
                   TitlePosition = [0.7, 4, 1.5]),
     plot::Circle3d(1, center, axis),
     plot::Rotate3d(plot::Arrow3d([0, 4, 1], [0, 3.9, 1],
                                  Color = RGB::Blue),
                    Axis = axis, Center = center,
                    Angle = 0.43*PI + a*2*PI/3) $ a = 1..3,
     Axes = Origin
):

delete center, axis, b0, b1, b2, b3, centerplusaxis:

See Also

MuPAD Functions

Was this topic helpful?