组件
表示Lewzen中包含的一个组件,包含了一切行为、规则、上下文。一个组件由三个部分组成:矢量图、文字、布局。其中布局为组件整体在画布中的表现、矢量图描述了图形的样式与变化规则、文字描述了文字样式与内容。
矢量图、文字中使用都是相对自己的图形坐标系。组件对其中的一些方法进一步封装,转化为画布坐标系。
组件类 LZComponent
属性
-
组成
-
arg: LZArrange *
组件布局对象的指针。只读。
-
vg: LZVectorGraph *
组件矢量图对象的指针。只读。
-
txt: LZText *
组件文字对象的指针。只读。
-
G: ComponentGraph *
组件矢量图和文字变换到画布坐标系得到的图。只读。
-
-
描述
-
author: string
作者。
-
comment: string
注释。
-
thumbnail: string
缩略图路径。
-
函数
-
构造函数
-
LZComponent()
空组件。
-
LZComponent(desc: string)
通过描述性指令创建组件。
-
LZComponent(json: string)
通过json描述创建组件。
-
LZComponent(xml: string)
通过XML描述创建组件。
-
-
析构函数
-
~LZComponent()
释放所有组件拥有的资源。
-
-
功能函数
-
redraw()
重新计算G。流程包括矢量图、文字图生成、更新图形坐标系、坐标系变换。
-
to_SVG() -> string
返回当前状态的组件在画布上的svg文本。
-
to_SVG(x: double, y: double, w: double, h: double) -> string
返回当前状态的组件被映射到画布上的(x, y, w, h)视角中的的svg文本。
-
move_to(p: Point2D)
将组件的图形中心移动到指定位置。重绘。(画布坐标系)
-
move_rotate_center_to(p: Point2D)
将组件的旋转中心移动到指定位置。重绘。(图形坐标系)
-
rotate_to(rd: double)
将组件相对旋转中心旋转为rd弧度。重绘。
-
-
矢量图相关函数
-
move_critical_to(cp_id: string, p: Point2D)
将关键点移动至指定位置。重绘。(画布坐标系)
-
-
文字相关函数
-
change_text_area(w: double, h: double)
变更文字绘制区域。重绘。
-
组件布局
含有与一个组件布局相关的属性。
组件布局类 LZArrange
属性
-
组成
-
o_pos: Point2D
组件的图形中心在画布上的位置。友元。(当ComponentGraph更新时,自动调整)
-
r_pos: Point2D
组件的旋转中心在图形坐标系的位置。友元。
-
rd: double
组建的旋转弧度。友元。
-
-
描述
-
_type: enum
布局类型。保护,只读。
-
函数
-
构造
-
LZArrange(o_pos: Point2D, r_pos: Point2D, rd: double = 0)
设置属性。
-
-
坐标系变换
-
layout_transform() -> PointTransform
图形坐标系到画布坐标系的映射。
-
线形布局 LZArrangeLine
继承布局,用于线形组件。
属性
-
组成
-
start_point: Point2D *
线的起点。私有。
-
end_point: Point2D *
线的终点。私有。
-
函数
-
构造
-
LZArrangeLine(start_point: Point2D *, end_point: Point2D *, rd: double = 0, type: enum = -1)
定义图形起止点。
-
矩形布局 LZArrangeRect
继承布局,用于矩形组件。
属性
-
组成
-
TL_point, BR_point: Point2D *
矩形的两顶点。私有。
-
width: double
宽度,由两顶点导出。更改时将改变BR_point位置。
-
height: double
高度,由两顶点导出。更改时将改变BR_point位置。
-
函数
-
构造
-
LZArrangeLine(TL_point: Point2D *, …, rd: double = 0)
定义矩形两顶点。
-
二维点
一个二维点的概念。除了坐标外,还包含描述信息例如类型、所在坐标系。
二维点类 Point2D
属性
-
坐标
-
x, y: double
点的坐标。
-
-
描述
-
coordinate: Coordinate
点所在的坐标系。只读。
-
type: string
点的类型。只读。
-
comment: string
点的注释。只读。
-
函数
-
构造
-
Point2D(x, y)
一个新的二维点。
-
-
析构函数
-
~Point2D()
释放资源。
-
-
变换
-
transform(trans: Transform) -> Point2D
进行点的变换。
-