【SDU Chart Team - Core】关于组件、组件布局、二维点类

组件

表示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

      进行点的变换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值