使用 Trajectory Layout 节点

使用 Trajectory Layout 节点可沿轨迹路径排列项。

Kanzi Studio 提供多种类型的轨迹。当您需要不同类型的轨迹时,请在第三方工具中创建样条轨迹并将其导入到您的 Kanzi Studio 项目中。请参阅 轨迹 (Trajectories)。

../../_images/trajectory-layout.gif

创建一个 Trajectory Layout 节点

要创建 Trajectory Layout 节点:

  1. 在 Node Tree 中,按 Alt 并右键单击 您要创建 Trajectory Layout 节点的节点,并选择 Trajectory Layout 3D 或 Trajectory Layout 2D。

    ../../_images/node-tree-create-trejectory-layout-2d.png

    您只能在 3D 节点中创建 3D 节点,例如 Scene 节点,并且只能在 2D 节点中创建 2D 节点。

    小技巧

    要查看轨迹,在 Preview 中单击 image-analyze-off 以进入 Analyze 模式,右键单击 图像分析开启,然后选择 Debug objects。

    ../../_images/visualize-mode-debug-objects.png
  2. 在 Node Tree 中,将子节点添加到您在上一步中创建的布局中。

    例如,如果您创建了一个 Trajectory Layout 3D 节点,请添加几个 Sphere 节点。如果您创建了一个 Trajectory Layout 2D 节点,请添加几个 Image 节点。

    ../../_images/node-tree-trajectory-layout-2d.png

    当您添加子节点时,Trajectory Layout 节点会将它们沿着 Trajectory Layout 节点使用的轨迹进行定位。

    ../../_images/trajectory-layout-element-position.gif
  3. (可选)

    Kanzi Studio 默认情况下创建并使用圆形轨迹。您可以使用角度、弧、圆、椭圆、直线、矩形、螺旋、样条或梯形轨迹。请参阅 轨迹 (Trajectories)。

    ../../_images/trajectory-layout-types.gif

将轨迹拉伸以填充布局

默认情况下,Trajectory Layout 节点使用的轨迹大小决定了轨迹在布局中占据的空间量。例如,在 Circle Trajectory 中,Radius 属性决定了轨迹的大小。

要拉伸轨迹以填充布局:

  1. 选择一个 Trajectory Layout 节点。

  2. 在 Properties 中,添加并启用 Trajectory Layout > Stretch 属性。

../../_images/trajectory-layout-stretch.gif

调整 Trajectory Layout 节点中项目之间的距离

Trajectory Layout 节点会自动计算其子节点之间的距离。

要调整 Trajectory Layout 节点中子节点之间的距离:

  1. 选择一个 Trajectory Layout 节点。

  2. 在 Properties 中,添加并设置 Trajectory Layout > Override Distance 属性。

../../_images/trajectory-layout-override-distance.gif

调整 Trajectory Layout 节点中项目的位置

默认情况下,Trajectory Layout 节点从轨迹样条的起点排列其子节点。

要调整 Trajectory Layout 节点子节点在轨迹上的起始位置:

  1. 选择一个 Trajectory Layout 节点。

  2. 在 Properties 中,添加并设置 Trajectory Layout > Start Offset 属性。

../../_images/trajectory-layout-start-offset.gif

设置 Trajectory Layout 2D 节点的外观

要设置 2D 节点的外观:

在 API 中使用 Trajectory Layout 节点

要创建 Trajectory Layout 3D 节点:

// Create a Trajectory Layout 3D named Trajectory.
TrajectoryLayout3DSharedPtr trajectoryLayout = TrajectoryLayout3D::create(domain, "Trajectory");

要创建轨迹并在 Trajectory Layout 3D 节点中使用它:

// Create a circle trajectory named Circle with radius of 4 device independent units.
// Set the trajectory layout to use it.
TrajectorySharedPtr trajectory = Trajectory::createCircle(Vector3(), Vector3::positiveY(), 0.0f, 4.0f, domain, "Circle");
trajectoryLayout->setTrajectory(trajectory);

要将项添加到 Trajectory Layout 3D 节点:

// Create cube meshes and add them as items of the trajectory layout.
// Items on the trajectory appear in the order you add them to the trajectory layout.
Model3DSharedPtr item1 = Model3D::createCube(domain, "item1", 1.0f, ThemeRed);
trajectoryLayout->addChild(item1);
Model3DSharedPtr item2 = Model3D::createCube(domain, "item2", 1.0f, ThemeGreen);
trajectoryLayout->addChild(item2);
Model3DSharedPtr item3 = Model3D::createCube(domain, "item3", 1.0f, ThemeBlue);
trajectoryLayout->addChild(item3);
Model3DSharedPtr item4 = Model3D::createCube(domain, "item4", 1.0f, ThemeOrange);
trajectoryLayout->addChild(item4);
Model3DSharedPtr item5 = Model3D::createCube(domain, "item5", 1.0f, ThemeGray);
trajectoryLayout->addChild(item5);

要手动将项置于 Trajectory Layout 3D 节点中:

// Position an item in the middle of the trajectory.
TrajectoryLayout3D::setOverrideOffset(*item2, 0.5f);

// Set the distance between the items to one third of the length of the trajectory.
trajectoryLayout->setOverrideDistance(0.3f);

有关详细信息,请参阅 TrajectoryLayout3D 和 TrajectoryLayout2D 类。

Trajectory Layout 属性类型和消息。

有关 Trajectory Layout 节点的可用属性类型和消息的列表,请参阅 Trajectory Layout 2D 和 Trajectory Layout 3D。

另请参阅

使用 Flow Layout 节点

使用 Stack Layout 节点

布局控制节点

使用 Trajectory List Box 3D 节点

使用角度轨迹

使用弧形轨迹

使用 circle trajectories

使用椭圆轨迹

使用线轨迹

使用矩形轨迹

使用螺旋轨迹

使用样条轨迹

使用梯形轨迹

轨迹 (Trajectories)