Curve¶
继承: Resource < RefCounted < Object
一条数学曲线。
描述¶
该资源通过在每个点定义一组点和切线来描述数学曲线。默认情况下,它在X和Y轴上的范围在0和1之间,但这些范围可以更改。
请注意,许多资源和节点假设它们被赋予单位曲线。单位曲线是其域(X轴)在0和1之间的曲线。
属性¶
|
||
|
||
|
||
|
||
|
||
|
方法¶
add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) |
|
void |
bake() |
void |
|
void |
|
get_domain_range() const |
|
get_point_left_mode(index: int) const |
|
get_point_left_tangent(index: int) const |
|
get_point_position(index: int) const |
|
get_point_right_mode(index: int) const |
|
get_point_right_tangent(index: int) const |
|
get_value_range() const |
|
void |
remove_point(index: int) |
sample_baked(offset: float) const |
|
void |
set_point_left_mode(index: int, mode: TangentMode) |
void |
set_point_left_tangent(index: int, tangent: float) |
set_point_offset(index: int, offset: float) |
|
void |
set_point_right_mode(index: int, mode: TangentMode) |
void |
set_point_right_tangent(index: int, tangent: float) |
void |
set_point_value(index: int, y: float) |
信号¶
domain_changed() 🔗
max_domain或min_domain变更时发出。
range_changed() 🔗
枚举¶
enum TangentMode: 🔗
TangentMode TANGENT_FREE = 0
点这一边的切线是用户定义的。
TangentMode TANGENT_LINEAR = 1
曲线将点这一侧的切线计算为朝向相邻点的一半斜率。
TangentMode TANGENT_MODE_COUNT = 2
可用切线模式的总数。
属性说明¶
要包含在烘焙(即缓存)曲线数据中的点数。
点可以拥有的最大域(x坐标)。
点可以具有的最大值(y坐标)。切线可以导致点之间的值更高。
点可以具有的最小域(x坐标)。
点可以具有的最小值(y坐标)。切线会导致点之间的值较低。
描述曲线的点数。
方法说明¶
int add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) 🔗
向曲线添加一个点。对于每条边,如果*_mode为TANGENT_LINEAR,则*_tangent角度(以度为单位)使用曲线到相邻点的一半的斜率。如果*_mode设置为TANGENT_FREE,则允许自定义分配给*_tangent角度。
void bake() 🔗
重新计算曲线的烘焙点缓存。
void clean_dupes() 🔗
删除重复点,即距离曲线上的相邻点小于0.00001个单位(引擎ε值)的点。
void clear_points() 🔗
从曲线中删除所有点。
float get_domain_range() const 🔗
返回min_domain和max_domain之间的差值。
TangentMode get_point_left_mode(index: int) const 🔗
返回index点的左TangentMode。
float get_point_left_tangent(index: int) const 🔗
返回index处点的左切角(以度为单位)。
Vector2 get_point_position(index: int) const 🔗
返回index点的曲线坐标。
TangentMode get_point_right_mode(index: int) const 🔗
返回index处点的正确TangentMode。
float get_point_right_tangent(index: int) const 🔗
返回index处点的直切角(以度为单位)。
float get_value_range() const 🔗
void remove_point(index: int) 🔗
从曲线中删除index处的点。
float sample(offset: float) const 🔗
返回在曲线X位置offset处存在的点的Y值。
float sample_baked(offset: float) const 🔗
使用烘焙缓存返回曲线X位置offset处的点的Y值。如果尚未烘焙,则烘焙曲线的点。
void set_point_left_mode(index: int, mode: TangentMode) 🔗
将index处的点的左TangentMode设置为mode。
void set_point_left_tangent(index: int, tangent: float) 🔗
将index处的点的左切角设置为tangent。
int set_point_offset(index: int, offset: float) 🔗
设置0.5的偏移量。
void set_point_right_mode(index: int, mode: TangentMode) 🔗
将index处的点的右TangentMode设置为mode。
void set_point_right_tangent(index: int, tangent: float) 🔗
将index处的点的直切角设置为tangent。
void set_point_value(index: int, y: float) 🔗
将垂直位置y分配给index处的点。