[發明專利]一種弧線變速運動的變速值的生成算法在審
| 申請號: | 201810690135.3 | 申請日: | 2018-06-28 |
| 公開(公告)號: | CN108845859A | 公開(公告)日: | 2018-11-20 |
| 發明(設計)人: | 孫征 | 申請(專利權)人: | 北京酷我科技有限公司 |
| 主分類號: | G06F9/451 | 分類號: | G06F9/451;G06T13/00 |
| 代理公司: | 北京德和衡律師事務所 11405 | 代理人: | 陳浩 |
| 地址: | 100080 北京市海淀區農大*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 變速 變速運動 弧線 生成算法 插補器 修飾 開發效率 畫布 算法 調用 | ||
1.一種弧線變速運動的變速值的生成算法,其特征在于,包括如下步驟:
通過FastOutSlowInInterpolator產生變速值,所述FastOutSlowInInterpolator指貝塞爾曲線的插補器FastOutSlowInInterpolator(),運動規律是由慢到快再到慢,
將變速值賦值給MATERIAL_INTERPOLATOR,作為interpolator插補器的屬性,限定MATERIAL_INTERPOLATOR為private static final Interpolator,
在使用動畫Animation或者AnimationSet的時候,使用這個屬性來修飾動畫運動的速率,實現了弧線變速運動的變速值的生成及控制,
在FastOutSlowInInterpolator產生中調用computeRender方法,
通過計算終點角度mEndDegrees 和起點角度mStartDegrees的差值,來得出旋轉的角度mSwipeDegrees,也就是變化的角度,
計算時,判斷Math.abs(mEndDegrees - mStartDegrees) > 0是否成立,成立則mSwipeDegrees = mEndDegrees – mStartDegrees,
設mRotationIncrement是新的旋轉角度增量,mOriginRotationIncrement是上一次循環角度增量,MAX_ROTATION_INCREMENT是每次旋轉最大增加角度值,則:
mRotationIncrement = mOriginRotationIncrement + (MAX_ROTATION_INCREMENT *renderProgress),
即:新的旋轉角度增量=上一次循環角度增量+(每次旋轉最大增加角度值*當前變化的進度),
計算畫布旋轉角度:((一次循環的角度/循環總次數)*當前變化的進度)+(一次循環的角度*(當前循環位置/循環總次數))。
2.如權利要求1所述的弧線變速運動的變速值的生成算法,其特征在于:終點角度mEndDegrees 和起點角度mStartDegrees通過以下步驟計算:
判斷當前變化的進度renderProgress小于等于起點繪制結束時進度START_TRIM_DURATION_OFFSET,則:
起點移動進度startTrimProgress賦值為(renderProgress) / (1.0f - START_TRIM_DURATION_OFFSET),
即:判斷當目前變化進度小于起點結束進度時,起點移動進度=當前變化進度/起點變化進度,
起點應該移動后的新角度mStartDegrees賦值為mOriginStartDegrees+MAX_SWIPE_DEGREES*MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress),
即:起點應該移動后的新角度=原角度 + 一次繪制角度*轉換后起點應該移動的進度,
原角度mOriginStartDegrees即指初始角度,
一次繪制角度MAX_SWIPE_DEGREES即指單次繪制畫弧所占最大角度,
判斷當前變化的進度renderProgress大于起點繪制結束時進度START_TRIM_DURATION_OFFSET,則:
終點移動進度endTrimProgress賦值為(renderProgress-START_TRIM_DURATION_OFFSET) / (END_TRIM_DURATION_OFFSET - START_TRIM_DURATION_OFFSET),
即:判斷當目前變化進度大于起點結束進度時,終點移動進度=(當前變化進度-起點繪制結束時進度)/(終點繪制結束時進度-起點繪制結束時進度),
終點應該移動后的新角度mEndDegrees賦值為mOriginEndDegrees+MAX_SWIPE_DEGREES* MATERIAL_INTERPOLATOR.getInterpolation(endTrimProgress),
即:終點應該移動后的新角度=原角度 + 一次繪制角度* 轉換后終點應該移動的進度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京酷我科技有限公司,未經北京酷我科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810690135.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種弧線運動的動畫算法
- 下一篇:一種quota管理方法、裝置及電子設備





