data

class janim.utils.data.ContextSetter(ctx: ContextVar[T], val: T)

基类:Generic

class janim.utils.data.Array(*, dtype=<class 'numpy.float32'>)

基类:object

使得在使用 .data = xxx 修改(赋值)后必定是不同的 id

并且通过 .data 得到的 numpy 数组必定是只读的

len() int
property data: ndarray
copy() Array
is_share(other: Array) bool
class janim.utils.data.AlignedData(data1: T, data2: T, union: T)

基类:Generic

数据对齐后的结构,用于 align_for_interpolate()

data1: T
data2: T
union: T
class janim.utils.data.History

基类:Generic

class TimedData(time: 'float', data: 'DataT', replaceable: 'bool')

基类:Generic

time: float
data: DataT
replaceable: bool
record_as_time(t: float, data: T, *, replaceable=False) T

标记在 t 时刻后,数据为 data

  • t 必须比现有的所有时刻都大

  • 如果此时 没有已存储的记录,则将 t 视为 0

has_record() bool
latest() TimedData[T]
get_at_time(t: float) T

得到在指定时间的数据

在两份数据的分界处请使用 get_at_right()get_at_left() 来明确

get_at_right(t: float) T

得到在指定时间之后的瞬间的数据

get_at_left(t: float) T

得到在指定时间之前的瞬间的数据

get(t: float) T

get_at_right() 的简写

class janim.utils.data.Margins(buff: float | tuple[float], /)
class janim.utils.data.Margins(left: float, top: float, right: float, bottom: float, /)

基类:object

定义了一组四个边距:左、上、右、下,用于描述矩形周围边框的大小。

如果直接传入单个数值,则表示为四个方向皆为该值

property left: float
property top: float
property right: float
property bottom: float
class janim.utils.data.Align(*values)

基类:IntFlag

Center = 0
Left = 1
Right = 4
Top = 8
Bottom = 16