Curve

Inherits: Resource < Reference < Object

一条数学曲线。

描述

可以保存并重新用于其他对象的曲线。默认情况下,它在Y轴上的范围在 01之间,并且位置点相对于 0.5 Y 位置。

方法

int

add_point ( Vector2 position, float left_tangent=0, float right_tangent=0, TangentMode left_mode=0, TangentMode right_mode=0 )

void

bake ( )

void

clean_dupes ( )

void

clear_points ( )

int

get_point_count ( ) const

TangentMode

get_point_left_mode ( int index ) const

float

get_point_left_tangent ( int index ) const

Vector2

get_point_position ( int index ) const

TangentMode

get_point_right_mode ( int index ) const

float

get_point_right_tangent ( int index ) const

float

interpolate ( float offset ) const

float

interpolate_baked ( float offset )

void

remove_point ( int index )

void

set_point_left_mode ( int index, TangentMode mode )

void

set_point_left_tangent ( int index, float tangent )

int

set_point_offset ( int index, float offset )

void

set_point_right_mode ( int index, TangentMode mode )

void

set_point_right_tangent ( int index, float tangent )

void

set_point_value ( int index, float y )

信号

  • range_changed ( )

更改 max_valuemin_value 时发出。

枚举

enum TangentMode:

  • TANGENT_FREE = 0 --- 点这边的切线是用户自定义的。

  • TANGENT_LINEAR = 1 --- 曲线计算点的这一侧的切线,作为向相邻点的一半的斜率。

  • TANGENT_MODE_COUNT = 2 --- 可用切线模式的总数。

属性说明

  • int bake_resolution

Default

100

Setter

set_bake_resolution(value)

Getter

get_bake_resolution()

烘焙(即缓存)曲线数据中包含的点的数量。


Default

1.0

Setter

set_max_value(value)

Getter

get_max_value()

曲线能达到的最大值。


Default

0.0

Setter

set_min_value(value)

Getter

get_min_value()

曲线能达到的最小值。

方法说明

在曲线上添加一个点。对于每一侧,如果*_modeTANGENT_LINEAR,则*_tangent角度(以度为单位)将使用曲线到邻近点的一半的斜率。如果*_mode设置为TANGENT_FREE,则允许自定义分配给*_tangent角度。


  • void bake ( )

重新计算曲线的烘焙点缓存。


  • void clean_dupes ( )

删除比曲线上的相邻点近CMP_EPSILON(0.00001)个单位的点。


  • void clear_points ( )

从曲线中删除所有点。


  • int get_point_count ( ) const

返回描述曲线的点数。


返回index处的点的左侧TangentMode


  • float get_point_left_tangent ( int index ) const

返回index处的点的左切线角(以度为单位)。


返回index处该点的曲线坐标。


返回在index处的点的右TangentMode


  • float get_point_right_tangent ( int index ) const

返回index处的点的左切线角(以度为单位)。


返回沿曲线的X位置offset处将存在的点的Y值。


使用烘焙的缓存返回沿曲线的X位置offset处将存在的点的Y值。如果尚未烘焙曲线的点,则将其烘焙。


  • void remove_point ( int index )

从曲线中删除index处的点。


index处的点的左侧TangentMode设置为mode


  • void set_point_left_tangent ( int index, float tangent )

将点的左切线角度设置为 indextangent


设置相对于0.5的偏移量。


index上的点的右侧TangentMode设置为mode


  • void set_point_right_tangent ( int index, float tangent )

设置indextangent处的点的右切线角。


  • void set_point_value ( int index, float y )

将垂直位置y分配给index处的点。