如何在RealityKit中仅绕一个轴旋转对象?

时间:2019-12-11 21:47:27

标签: swift rotation augmented-reality arkit realitykit

我正在尝试绕其z轴旋转多维数据集,但找不到方法。

RealityKit中有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

对于也在搜索此内容的人,您需要使用 transform rotation 。 这需要 simd_quatf ,在其中输入角度

就我而言,我必须使用它:

/usr/bin/env

答案 1 :(得分:1)

  

在RealityKit中,至少有两种方法可以围绕单轴旋转对象

第一种方法:

model test_params "Model for a cylinder"
  model Cylinder
  parameter Real r;
  parameter Real h;
  parameter Real V;
  //Approach 3: binding equation. Works, but what to do if I have V, h and want to know r??
  //parameter Real V=r^2*Modelica.Constants.pi*h;

  Real t;
  initial equation
    //Approach 2, apparently chooses V as 0 before getting to the initialisation equation
    //V=r^2*Modelica.Constants.pi*h; 
    //Parameter cylinder.V has no value, and is fixed during initialization (fixed=true), using available start value (start=0.0) as default value.
    // The initial conditions are over specified. The following 1 initial equations are redundant, so they are removed from the initialization sytem:
    //    cylinder.V = 3.141592653589793 * cylinder.r ^ 2.0 * cylinder.h.
  equation
    t = V;
    // Approach 1
    //V=r^2*Modelica.Constants.pi*h; //Leads to: Too many equations, over-determined system.
  end Cylinder;

  test_params.Cylinder cylinder(h = 1, r = 2)  annotation(
    Placement(visible = true, transformation(origin = {-44, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
end test_params;

第二种方法:

let boxAnchor = try! Experience.loadBox()

boxAnchor.steelBox?.orientation = simd_quatf(angle: .pi/4,      /* 45 Deg in Rad */
                                              axis: [0, 0, 1])  /* Around Z axis */
  • 螺距是X轴(以弧度表示)
  • 偏航是Y轴(以弧度表示)
  • roll 是Z轴(以弧度表示)