今天来分享一下计算两点之间任意一点的坐标方式,分为3d及2d点的计算。思路大概就是起点坐标加上根据比例计算出来的相对于起点的偏移
/// <summary>
/// 获取两点之间的点
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="progress"></param>
/// <returns></returns>
public static Vector3 BetweenPoint(Vector3 start, Vector3 end, float progress)
{
Vector3 normal = (end - start).normalized;
float distance = Vector3.Distance(start, end);
return normal * (distance * progress) + start;
}
/// <summary>
/// 获取两点之间的点
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="progress"></param>
/// <returns></returns>
public static Vector2 BetweenPoint(Vector2 start, Vector2 end, float progress)
{
Vector2 normal = (end - start).normalized;
float distance = Vector2.Distance(start, end);
return normal * (distance * progress) + start;
}