Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
ac0fc8c0
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ac0fc8c0
编写于
6月 20, 2022
作者:
L
lanyill
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
插值计算文档修改
Signed-off-by:
N
lanyill
<
lanyi3@huawei.com
>
上级
86a8f58b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
183 addition
and
56 deletion
+183
-56
zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001174104410.gif
...ference/arkui-ts/figures/zh-cn_image_0000001174104410.gif
+0
-0
zh-cn/application-dev/reference/arkui-ts/ts-interpolation-calculation.md
...on-dev/reference/arkui-ts/ts-interpolation-calculation.md
+183
-56
未找到文件。
zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001174104410.gif
查看替换文件 @
86a8f58b
浏览文件 @
ac0fc8c0
113.8 KB
|
W:
|
H:
174.6 KB
|
W:
|
H:
2-up
Swipe
Onion skin
zh-cn/application-dev/reference/arkui-ts/ts-interpolation-calculation.md
浏览文件 @
ac0fc8c0
...
@@ -6,60 +6,77 @@
...
@@ -6,60 +6,77 @@
## 导入模块
## 导入模块
```
```
js
import
c
urves from '@ohos.curves'
import
C
urves
from
'
@ohos.curves
'
```
```
##
权限
##
Curves.initCurve<sup>9+</sup>
无
initCurve(curve?: Curve):ICurve
## curves.init
插值曲线的初始化函数,可以根据入参创建一个插值曲线对象。
init(curve?: Curve): Object
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------------------------------------------------------------ | ---- | ------------ | ---------- |
| curve |
[
Curve
](
#curve枚举说明
)
| 否 | Curve.Linear | 曲线类型。 |
插值曲线的初始化函数,可以根据入参创建一个插值曲线对象。
**返回值:**
| 类型 | 说明 |
| ---------------------------------- | ---------------- |
|
[
ICurve
](
#icurve
)
| 曲线的插值对象。 |
-
参数
**示例:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
| ----- | ----- | ---- | ------ | ----- |
| curve | Curve | 否 | Linear | 曲线对象。 |
-
返回值
<br>
```
ts
曲线对象Object。
import
Curves
from
'
@ohos.curves
'
Curves
.
initCurve
(
Curve
.
EaseIn
)
// 创建一个默认先慢后快插值曲线
```
##
curves.steps
##
Curves.stepsCurve<sup>9+</sup>
steps
(count: number, end: boolean): Object
steps
Curve(count: number, end: boolean):ICurve
构造阶梯曲线对象。
构造阶梯曲线对象。
**参数:**
-
参数
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------- | ----| ------------------------------------------------------------ |
| ----- | ------- | ---- | ---- | ---------------------------------------- |
| count | number | 是 | 阶梯的数量,需要为正整数。 |
| count | number | 是 | - | 阶梯的数量,需要为正整数。 |
| end | boolean | 是 | 在每个间隔的起点或是终点发生阶跃变化。
<br>
-true:在终点发生阶跃变化。
<br>
-false:在起点发生阶跃变化。 |
| end | boolean | 是 | true | 在每个间隔的起点或是终点发生阶跃变化
,默认值为true,即在终点发生阶跃变化。 |
-
返回值
<br>
**返回值:**
曲线对象Object。
| 类型 | 说明 |
| ---------------------------------- | ---------------- |
|
[
ICurve
](
#icurve
)
| 曲线的插值对象。 |
## curves.cubicBezier
cubicBezier(x1: number, y1: number, x2: number, y2: number): Object
**示例:**
```
ts
import
Curves
from
'
@ohos.curves
'
Curves
.
stepsCurve
(
9
,
true
)
//创建一个阶梯曲线
```
## Curves.cubicBezierCurve<sup>9+</sup>
cubicBezierCurve(x1: number, y1: number, x2: number, y2: number):ICurve
构造三阶贝塞尔曲线对象,曲线的值必须处于0-1之间。
构造三阶贝塞尔曲线对象,曲线的值必须处于0-1之间。
-
参数
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| ---- | ------ | ---- | -------------- |
| x1 | number | 是 | 确定贝塞尔曲线第一点横坐标。 |
| x1 | number | 是 | 确定贝塞尔曲线第一点横坐标。 |
...
@@ -67,53 +84,164 @@ cubicBezier(x1: number, y1: number, x2: number, y2: number): Object
...
@@ -67,53 +84,164 @@ cubicBezier(x1: number, y1: number, x2: number, y2: number): Object
| x2 | number | 是 | 确定贝塞尔曲线第二点横坐标。 |
| x2 | number | 是 | 确定贝塞尔曲线第二点横坐标。 |
| y2 | number | 是 | 确定贝塞尔曲线第二点纵坐标。 |
| y2 | number | 是 | 确定贝塞尔曲线第二点纵坐标。 |
-
返回值
<br>
**返回值:**
曲线对象Object。
| 类型 | 说明 |
| ---------------------------------- | ---------------- |
|
[
ICurve
](
#icurve
)
| 曲线的插值对象。 |
## curves.spring
spring(velocity: number, mass: number, stiffness: number, damping: number): Object
**示例:**
```
ts
import
Curves
from
'
@ohos.curves
'
Curves
.
cubicBezierCurve
(
0.1
,
0.0
,
0.1
,
1.0
)
// 创建一个三阶贝塞尔曲线
```
## Curves.springCurve<sup>9+</sup>
springCurve(velocity: number, mass: number, stiffness: number, damping: number):ICurve
构造弹簧曲线对象。
构造弹簧曲线对象。
-
参数
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ----- |
| --------- | ------ | ---- | ----- |
| velocity | number | 是 | 初始速度。 |
| velocity | number | 是 | 初始速度。是由外部因素对弹性动效产生的影响参数,其目的是保证对象从之前的运动状态平滑的过渡到弹性动效。 |
| mass | number | 是 | 质量。 |
| mass | number | 是 | 质量。弹性系统的受力对象,会对弹性系统产生惯性影响。质量越大,震荡的幅度越大,恢复到平衡位置的速度越慢。 |
| stiffness | number | 是 | 刚度。 |
| stiffness | number | 是 | 刚度。是物体抵抗施加的力而形变的程度。在弹性系统中,刚度越大,抵抗变形的能力越强,恢复到平衡位置的速度就越快。 |
| damping | number | 是 | 阻尼。 |
| damping | number | 是 | 阻尼。是一个纯数,无真实的物理意义,用于描述系统在受到扰动后震荡及衰减的情形。阻尼越大,弹性运动的震荡次数越少、震荡幅度越小。 |
**返回值:**
| 类型 | 说明 |
| ---------------------------------- | ---------------- |
|
[
ICurve
](
#icurve
)
| 曲线的插值对象。 |
**示例:**
```
ts
import
Curves
from
'
@ohos.curves
'
Curves
.
springCurve
(
100
,
1
,
228
,
30
)
// 创建一个弹簧插值曲线
```
## ICurve
### interpolate
interpolate(fraction:
number): number
-
返回值
<br>
插值曲线的插值计算函数,可以通过传入的归一化时间参数返回当前的插值
曲线对象Object。
**参数:**
## 示例
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | -------------------------------------------- |
| fraction | number | 是 |
当前的归一化时间参数,有效值范围0到1。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------------------ |
| number | 返回归一化time时间点对应的曲线插值。 |
**示例:**
```
ts
```
ts
import
Curves
from
'
@ohos.curves
'
import
Curves
from
'
@ohos.curves
'
let
curve1
=
Curves
.
init
()
// 创建一个默认线性插值曲线
let
curve
=
Curves
.
initCurve
(
Curve
.
EaseIn
)
// 创建一个默认先慢后快插值曲线
let
curve2
=
Curves
.
init
(
Curve
.
EaseIn
)
// 创建一个默认先慢后快插值曲线
let
value
:
number
=
curve
.
interpolate
(
0.5
)
// 计算得到时间到一半时的插值
let
curve3
=
Curves
.
spring
(
100
,
1
,
228
,
30
)
// 创建一个弹簧插值曲线
let
curve3
=
Curves
.
cubicBezier
(
0.1
,
0.0
,
0.1
,
1.0
)
// 创建一个三阶贝塞尔曲线
```
```
曲线对象只能通过上面的接口创建。
## Curves.init<sup>(deprecated)</sup>
| 接口名称 | 功能描述 |
| ---------------------------------------- | ---------------------------------------- |
init(curve?: Curve): string
| interpolate(time:
number):
number | 插值曲线的插值计算函数,可以通过传入的归一化时间参数返回当前的插值。
<br/>
time:
当前的归一化时间参数,有效值范围0到1。
<br/>
返回归一化time时间点对应的曲线插值。 |
插值曲线的初始化函数,可以根据入参创建一个插值曲线对象,从API version9开始废弃,推荐使用
[
Curves.initCurve
](
#curvesinitcurve9
)
。
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------------------------------------------------------------ | ---- | ------------ | ---------- |
| curve |
[
Curve
](
#curve枚举说明
)
| 否 | Curve.Linear | 曲线类型。 |
## Curves.steps<sup>(deprecated)</sup>
steps(count: number, end: boolean): string
-
示例
```
ts
构造阶梯曲线对象,从API version9开始废弃,推荐使用
[
Curves. stepsCurve
](
# curvesstepscurve9
)
。
import
Curves
from
'
@ohos.curves
'
let
curve
=
Curves
.
init
(
Curve
.
EaseIn
)
// 创建一个默认先慢后快插值曲线
**参数:**
let
value
:
number
=
curve
.
interpolate
(
0.5
)
// 计算得到时间到一半时的插值
```
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------- | ----| ------------------------------------------------------------ |
| count | number | 是 | 阶梯的数量,需要为正整数。 |
| end | boolean | 是 | 在每个间隔的起点或是终点发生阶跃变化。
<br>
-true:在终点发生阶跃变化。
<br>
-false:在起点发生阶跃变化。 |
## Curves.cubicBezier<sup>(deprecated)</sup>
cubicBezier(x1: number, y1: number, x2: number, y2: number): string
构造三阶贝塞尔曲线对象,曲线的值必须处于0-1之间,API version9开始废弃,推荐使用
[
Curves.cubicBezierCurve
](
#curvescubicbeziercurve9
)
。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | -------------- |
| x1 | number | 是 | 确定贝塞尔曲线第一点横坐标。 |
| y1 | number | 是 | 确定贝塞尔曲线第一点纵坐标。 |
| x2 | number | 是 | 确定贝塞尔曲线第二点横坐标。 |
| y2 | number | 是 | 确定贝塞尔曲线第二点纵坐标。 |
## Curves.spring<sup>(deprecated)</sup>
spring(velocity: number, mass: number, stiffness: number, damping: number): string
构造弹簧曲线对象,从API version9开始废弃,推荐使用
[
Curves.springCurve
](
#curvesspringcurve9
)
。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ----- |
| velocity | number | 是 | 初始速度。是由外部因素对弹性动效产生的影响参数,其目的是保证对象从之前的运动状态平滑的过渡到弹性动效。 |
| mass | number | 是 | 质量。弹性系统的受力对象,会对弹性系统产生惯性影响。质量越大,震荡的幅度越大,恢复到平衡位置的速度越慢。 |
| stiffness | number | 是 | 刚度。是物体抵抗施加的力而形变的程度。在弹性系统中,刚度越大,抵抗变形的能力越强,恢复到平衡位置的速度就越快。 |
| damping | number | 是 | 阻尼。是一个纯数,无真实的物理意义,用于描述系统在受到扰动后震荡及衰减的情形。阻尼越大,弹性运动的震荡次数越少、震荡幅度越小。 |
## Curve枚举说明
| 名称 | 描述 |
| ------------------- | ---------------------------------------- |
| Linear | 表示动画从头到尾的速度都是相同的。 |
| Ease | 表示动画以低速开始,然后加快,在结束前变慢,CubicBezier(0.25,
0.1,
0.25,
1.0)。 |
| EaseIn | 表示动画以低速开始,CubicBezier(0.42,
0.0,
1.0,
1.0)。 |
| EaseOut | 表示动画以低速结束,CubicBezier(0.0,
0.0,
0.58,
1.0)。 |
| EaseInOut | 表示动画以低速开始和结束,CubicBezier(0.42,
0.0,
0.58,
1.0)。 |
| FastOutSlowIn | 标准曲线,cubic-bezier(0.4,
0.0,
0.2,
1.0)。 |
| LinearOutSlowIn | 减速曲线,cubic-bezier(0.0,
0.0,
0.2,
1.0)。 |
| FastOutLinearIn | 加速曲线,cubic-bezier(0.4,
0.0,
1.0,
1.0)。 |
| ExtremeDeceleration | 急缓曲线,cubic-bezier(0.0,
0.0,
0.0,
1.0)。 |
| Sharp | 锐利曲线,cubic-bezier(0.33,
0.0,
0.67,
1.0)。 |
| Rhythm | 节奏曲线,cubic-bezier(0.7,
0.0,
0.2,
1.0)。 |
| Smooth | 平滑曲线,cubic-bezier(0.4,
0.0,
0.4,
1.0)。 |
| Friction | 阻尼曲线,CubicBezier(0.2,
0.0,
0.2,
1.0)。 |
## 整体示例
## 整体示例
...
@@ -134,14 +262,13 @@ struct ImageComponent {
...
@@ -134,14 +262,13 @@ struct ImageComponent {
.
height
(
this
.
heightSize
)
.
height
(
this
.
heightSize
)
.
backgroundColor
(
Color
.
Red
)
.
backgroundColor
(
Color
.
Red
)
.
onClick
(()
=>
{
.
onClick
(()
=>
{
let
curve
=
Curves
.
cubicBezier
(
0.25
,
0.1
,
0.25
,
1.0
);
let
curve
=
Curves
.
cubicBezier
Curve
(
0.25
,
0.1
,
0.25
,
1.0
);
this
.
widthSize
=
curve
.
interpolate
(
0.5
)
*
this
.
widthSize
;
this
.
widthSize
=
curve
.
interpolate
(
0.5
)
*
this
.
widthSize
;
this
.
heightSize
=
curve
.
interpolate
(
0.5
)
*
this
.
heightSize
;
this
.
heightSize
=
curve
.
interpolate
(
0.5
)
*
this
.
heightSize
;
})
})
.
animation
({
duration
:
2000
,
curve
:
Curves
.
s
pring
(
0.25
,
0.1
,
0.25
,
1.0
)})
.
animation
({
duration
:
2000
,
curve
:
Curves
.
s
tepsCurve
(
9
,
true
)})
}.
width
(
"
100%
"
).
height
(
"
100%
"
)
}.
width
(
"
100%
"
).
height
(
"
100%
"
)
}
}
}
}
```
```


编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录