基于圆的方程来计算圆球血条顶部特效缩放比

//血量相关
setHp(): void
{
    let player = MainPlayer.getInstance();
    if (player)
    {
        let curHp = Number(player.getCurHp());
        let maxHp = player.getMaxHp();
        let precent = Math.floor((curHp / Number(maxHp)) * 100);
        // if (precent > 90)
        // {
        //     precent = 90;
        // }
        // else 
        if (precent < 10)
        {
            precent = 10;
        }
        this.m_hpProcessMask.setPercentage(precent);
        let h = 53 - 1.06 * precent;
        this.m_hpTopEffect.pos(0, h);
        let val = 0;
        if (precent >= 50)
        {
            val = (precent - 50) / 100 * 2;
        }
        else
        {
            val = (50 - precent) / 100 * 2;
        }
        let scaleX = Math.sqrt(1 - val * val) * this.m_hpEffect.width / this.m_hpTopEffect.width;//圆的方程
        this.m_hpTopEffect.scale(scaleX, 1);
    }
}

圆的方程有三种,分别是X²+Y²=1;x²+y²=r²;(x-a)²+(y-b)²=r²。
一、X²+Y²=1所表示的曲线是以O(0,0)为圆心,以1单位长度为半径的圆。
二、x²+y²=r²所表示的曲线是以O(0,0)为圆心,以r为半径的圆。
三、(x-a)²+(y-b)²=r²所表示的曲线是以O(a,b)为圆心,以r为半径的圆。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容