# MecCircle

# 说明

表示最小包围圆(Minimum Enclosing Circle)的结构体,用于计算能够包围一组点的最小圆形区域。

# 如何使用

// 获取敌方英雄位置
std::vector<Vector> enemyPositions;
auto enemies = ObjectManager::Get_EnemyHeroes();
for (auto enemy : enemies)
{
    if (enemy->IsValid() && enemy->IsVisible() && enemy->IsTargetable() && 
        enemy->Position().Distance(ObjectManager::Player()->Position()) <= 1500.f)
    {
        enemyPositions.push_back(enemy->Position());
    }
}

// 如果有多个敌人,计算最小包围圆
if (enemyPositions.size() >= 2)
{
    // 获取包围所有敌人的最小圆
    MecCircle circle = MEC::GetMec(enemyPositions);
    
    // 使用最小包围圆信息
    Vector circleCenter = circle.Center;
    float circleRadius = circle.Radius;
    
    // 检查是否有足够多的敌人在圆内并且圆半径适中
    if (enemyPositions.size() >= 3 && circleRadius < 350.f)
    {
        // 适合使用AOE技能,如安妮的W,提比尔的蘑菇等
        ObjectManager::Player()->CastSpell(eSpellSlot::R, circleCenter);
    }
    
    // 绘制最小包围圆用于调试
    Geometry::Circle(circleCenter, circleRadius).Draw(MAKE_COLOR(255, 0, 0, 255), 2.f);
}

# Properties

属性名 类型 描述
Center Vector 圆心位置
Radius float 圆的半径