うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】対象の点が楕円の範囲内かを判定する

    /// <summary>
    /// 楕円の範囲内かどうか (2次元)
    /// </summary>
    public static bool IsInEllipse(Vector2 center, Vector2 radius, Vector2 position)
    {
        var sum = 0f;
        for (var i = 0; i < 2; i++)
        {
            var a = (position[i] - center[i]);
            sum += (a * a) / (radius[i] * radius[i]);
        }
         
        return sum <= 1;
    }
     
    /// <summary>
    /// 楕円の範囲内かどうか (3次元)
    /// </summary>
    public static bool IsInEllipse(Vector3 center, Vector3 radius, Vector3 position)
    {
        var sum = 0f;
        for (var i = 0; i < 3; i++)
        {
            var a = (position[i] - center[i]);
            sum += (a * a) / (radius[i] * radius[i]);
        }
         
        return sum <= 1;
    }