line¶
- class janim.items.geometry.line.Cmpt_VPoints_LineImpl(*args, **kwargs)¶
基类:
Cmpt_VPoints,Generic在线段中,对
Cmpt_VPoints的进一步实现- copy() Self¶
- become(other: Cmpt_VPoints_LineImpl) Self¶
- not_changed(other) bool¶
- put_start_and_end_on(start: Vect, end: Vect) Self¶
通过旋转和缩放,使得物件的起点和终点被置于
start和end
- update_by_attrs(start: ndarray | None = None, end: ndarray | None = None, buff: float | None = None, path_arc: float | None = None) Self¶
- update_points_by_attrs(*args, **kwargs) Self¶
- set_buff(buff: float) Self¶
- set_path_arc(path_arc: float) Self¶
- set_start_and_end(start: SupportsPointify, end: SupportsPointify) Self¶
- static pointify_start_and_end(start: SupportsPointify, end: SupportsPointify) tuple[ndarray, ndarray]¶
- static pointify(item_or_data_or_point: SupportsPointify, direction: Vect | None = None) ndarray¶
Take an argument passed into Line (or subclass) and turn it into a 3d point.
- property vector: ndarray¶
- property unit_vector: ndarray¶
- property angle: float¶
- get_projection(point: Vect) ndarray¶
Return projection of a point onto the line
- get_slope() float¶
- set_angle(angle: float, about_point: Vect | None = None) Self¶
- set_length(length: float, **kwargs)¶
- property length: float¶
- property arc_length: float¶
- class janim.items.geometry.line.Line(start: Vect | Points = array([-1., 0., 0.]), end: Vect | Points = array([1., 0., 0.]), *, buff: float = 0, path_arc: float = 0, **kwargs)¶
基类:
VItem线段
传入
start,end为线段起点终点buff: 线段两端的空余量,默认为0path_arc: 表示线段的弯曲角度
- points¶
- class janim.items.geometry.line.Cmpt_VPoints_DashedLineImpl(*args, **kwargs)¶
基类:
Cmpt_VPoints_LineImpl,Generic在虚线中,对
Cmpt_VPoints的进一步实现- get_start() ndarray¶
得到
points的第一个点
- get_end() ndarray¶
得到
points的最后一个点
- class janim.items.geometry.line.DashedLine(start: Vect | Points = array([-1., 0., 0.]), end: Vect | Points = array([1., 0., 0.]), *, dash_length: float = 0.1, dashed_ratio: float = 0.5, **kwargs)¶
-
虚线
dash_length: 每段虚线的长度dashed_ratio: 虚线段的占比,默认为0.5,即虚线段与空白段长度相等,但可能因为虚线段描边存在粗细而导致视觉上空白长度略小
- class janim.items.geometry.line.TangentLine(vitem: VItem, alpha: float, length: float = 1, *, d_alpha: float = 1e-06, **kwargs)¶
基类:
Line切线
传入
vitem表示需要做切线的物件,alpha表示切点在vitem上的比例length: 切线长度d_alpha: 精细程度,越小越精细(默认1e-6)
- class janim.items.geometry.line.Elbow(width: float = 0.2, angle: float = 0, **kwargs)¶
基类:
MarkedItem,VItem折线(一般用作直角符号)
width表示宽度angle表示角度
- class janim.items.geometry.line.Angle(line1: Line, line2: Line, radius: float | None = None, quadrant: AngleQuadrant = (1, 1), other_angle: bool = False, dot: bool = False, dot_radius: float | None = None, dot_distance: float = 0.55, dot_color: JAnimColor = '#FFFFFF', elbow: bool = False, **kwargs)¶
基类:
MarkedItem,VItem一个圆弧或直角标记对象,用于表示两条线之间的夹角
radius: 圆弧的半径quadrant:- 由两个整数构成的序列,用于确定应使用哪一个象限为基准;第一个值表示在第一条线上以终点(1)或起点(-1)为基准,第二个值同理作用于第二条线;可选值包括:
(1, 1),(1, -1),(-1, 1),(-1, -1)
other_angle:- 在两个可能的夹角之间切换。默认
False,则弧线从line1到line2按逆时针绘制;如果为True,则按顺时针方向绘制
dot: 是否在弧线上添加一个点,通常用于指示直角dot_radius: 点的半径,默认为弧半径的1/10dot_distance: 点到圆心的相对距离,其中0表示在圆心处,1表示在圆弧上,默认为0.55dot_color: 点的颜色elbow: 是否使用直角标记的形式,参考RightAngle类
- get_value(degrees: bool = False) float¶
获取该角的数值
degrees: 是否以角度的形式返回,默认为False,即弧度制