【问题标题】:Get point on arc for path follower获取路径跟随者的圆弧点
【发布时间】:2022-11-30 17:24:35
【问题描述】:

我正在尝试在 Unity 中使用 C# 创建一个简单的路径系统。

到目前为止,一切正常。但是要创建一个路径跟随者,我需要跟随者每一帧应该移动到的位置。路径总是有一个半径、一个起点和一个长度,其余的是未知的。

现在,我怎么计算路径跟随者在每一帧中的位置,即圆弧上的点?我需要一个函数,它将跟随者在路径上的百分比位置作为参数,并返回场景中的全局位置。 举个例子:给定圆弧的长度 L,半径 r 和起点 A。我要计算的是随机点 D:

我自己计算的点是一团糟,不管用,尽管我已经做了一些研究。所以我正在寻找一个简单易懂的解决方案。

【问题讨论】:

  • 只有半径、起点和长度是不可能的,因为它不描述单个特定的弧。您还需要相应圆的中心点。
  • @JonasH 但是在这种情况下我们可以用起点和半径计算点 B,对吧?B = (5|0)
  • @jjb 所以给出了 B.Y 坐标,不是吗?
  • @MBo 计算时,是的。
  • 只有关于从起点到中心的关系的附加约束。如果你想允许任意弧,你不能有这样的约束。

标签: c# unity3d geometry


【解决方案1】:

开始和结束必须以弧度为单位。

这将返回两个角度之间的随机点,距离为半径。

 Vector3 getRandomPoint(float start, float end, float radius){

        float random = Random.Range(start, end);

        float x = Mathf.Cos(random) * radius;
        float y = Mathf.Sin(random) * radius;
        float z = 0; // Object z position

        return new Vector3(x, y, z);
    }

【讨论】:

  • 您确定这是上述问题的答案吗?
猜你喜欢
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 2014-12-28
  • 1970-01-01
  • 2016-06-20
  • 2020-09-16
  • 1970-01-01
相关资源
最近更新 更多