gpt4 book ai didi

c# - 在近似定义的距离处沿向量线获取均匀分布的点

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:09 25 4
gpt4 key购买 nike

所以我推出了一个方法,该方法返回给定距离处的一组点。

    /// <summary>
/// Gets all the points between a two vectors at given distance, including the starting and the ending point.
/// </summary>
public static List<Vector2> GetPointsAlongTwoVectors(Vector2 startingPoint, Vector2 endingPoint, float distance)
{
Vector2 direction = (endingPoint - startingPoint).normalized;
float totalDistance = (endingPoint - startingPoint).magnitude;
float increasingDistance = 0.0f;
List<Vector2> points = new List<Vector2>();

points.Add(startingPoint);

if (totalDistance > distance)
{
do
{
increasingDistance += distance;
points.Add(startingPoint + increasingDistance * direction);
} while (increasingDistance + distance < totalDistance);
}

points.Add(endingPoint);

return points;
}

该方法有效,但我接下来最终想做的是将这些点均匀地分布在给定的向量上。这让我想到距离最终会变成近似距离,因为它可能无法均匀分布具有完全精确距离的点,但是只要该方法返回起点、终点和它们之间均匀分布的点就可以了。有人可以帮我吗?

最佳答案

也许添加这段代码:

...
float totalDistance = (endingPoint - startingPoint).magnitude;
float sectionsCount = (float)Math.Round(totalDistance / distance, MidpointRounding.AwayFromZero);
distance = totalDistance / sectionsCount;
...

请务必检查 sectionsCount 为 0 的情况。

关于c# - 在近似定义的距离处沿向量线获取均匀分布的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com