【问题标题】:Create vector from distance and vector从距离和向量创建向量
【发布时间】:2014-06-17 15:51:22
【问题描述】:

如何从另一个向量和距离创建向量?

例如,使用 vector3d(1,1,2) 和距离 12,创建另一个具有相同方向但长 12 个单位的向量。

【问题讨论】:

    标签: c# vector xna distance


    【解决方案1】:

    你想在你想要的方向找到unit vector;在 XNA 中,这是由Vector3.Normalize 给出的。然后你可以scalar multiply那个单位向量(根据定义,长度= 1)通过最终距离。

    例如:

    var originalVector = new Vector3(1, 1, 2);
    var finalLength = originalVector.Length + 12; // "longer by 12", this could be whatever you want
    originalVector.Normalize(); // make it a unit vector
    var finalVector = originalVector * finalLength;
    

    【讨论】:

    • 但我没有两个向量。我只有一个向量和一个距离
    • 那么你可以简单地将originalVector * finalLength的结果赋值给originalVector。我用单独的变量来说明,但你可以做任何你想做的事,数学是一样的。
    • 好吧,搞砸我......这是我在我的游戏中使用我的“复杂”pytagore数学来计算所有动作......我想这就是你开始时没有上课时会发生的情况域...
    【解决方案2】:

    从数学的角度来看,Asik 的答案是 100% 正确的。如果您希望放大后的矢量位于原始矢量中,请使用

    var originalVector = originalVector * finalLength;
    

    【讨论】:

      猜你喜欢
      • 2021-08-23
      • 2016-09-27
      • 1970-01-01
      • 2013-10-03
      • 2014-10-17
      • 2016-02-08
      • 1970-01-01
      • 2022-06-16
      • 2017-06-09
      相关资源
      最近更新 更多