0.7.2 • Published 2 years ago

algomotion v0.7.2

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
2 years ago

AlgoMotion

用于算法可视化的轻量级Canvas绘制工具

Install

npm i algomotion

Demo

API

General

配置项

  • Set

    名称含义(涉及数字,单位均为px)默认值
    heightCanvas高度250
    widthCanvas宽度800
    blockMaxSize数字块(最大)边长(圆形直径)50
    emphasisColor强调块背景色#bedce3
    emphasisTextColor强调块字体颜色#1c474d
    textColor普通块字体颜色#eefcf5
    fillColor普通块背景色#14cdc8
    barrierColorBarrier的颜色red
    font数字大小20
    hidpiHiDPI支持true
    fps动画帧率60
    speed动画执行速度1.0
    motion是否使用movesReader读取mvs中的操作步骤false
    postion启用motion时,绑定mvs执行的进度undefined
    staticTime定义一些静止动作的持续时间(如强调、空白动作等)(单位为浩渺)800

position使用方法:

  • Vue
let value = ref(0);
let set = {
	position: [value]
}
  • 普通JS请查看Demo源码,postion会在控制台打印。
  • info

    名称含义
    dta放置数据
    mvs放置操作步骤

方法

名称作用
init(set,info,canvas)初始化函数
destory()析构函数
pause(boolean)控制暂停继续动画
setMovesReader(func)设定mvs处理器,处理器为一个函数,默认详见:默认MovesReader
setPosition(idx)控制关键帧的位置
clear()清除所有的强调状态和标记

Array

配置项

  • set

    名称含义(涉及数字,单位均为px)默认值
    maxGap块最大间隔25
    blockRadius块圆角半径5
    motionOffset动画的上下偏移范围50

方法

名称作用
swapBlock(idx1,idx2)提供index,展示交换动画
emphasizeBlock(idx,boolean)提供index和一个布尔值,用于切换是否强调展示
addBarrier(arr)提供一个数组,数组内为index,用于在对应块之前放置分隔标记(兼容旧参数:仅一个数字)
removeBarrier(arr)提供一个数组,数组内为index,用于在对应块之前删除分隔标记(兼容旧参数:仅一个数字)
addBlock(idx,num)添加一个新数字块
removeBlock(idx)删除一个数字块

Tree

配置项

  • Set

    名称含义(涉及数字,单位均为px)默认值
    maxLayerHeight树每一层的最大高度70
    emphasisLineColor强调连线颜色#1c474d

    另外,树枝的颜色为fillColor,交换(swap)时会变为emphasisTextColor

  • Info

    树结点的索引,是其在完美二叉树中的位置,从0开始。

方法

名称作用
swapNode(idx1,idx2)提供index,展示交换动画
emphasizeNode(idx,boolean)提供index和一个布尔值,用于切换是否强调展示
addNode(idx,num)添加一个新结点
removeNode(idx)删除一个结点

Graph

基于较为原始的力引导布局的无向图

配置项

  • Set

    名称含义(涉及数字,单位均为px)默认值
    blockSize每个结点的大小(替代原blockMaxSize)40
    emphasisLineColor强调连线颜色#1c474d
  • Info

    名称含义
    rel放置关系矩阵(二维)建议仅填充上三角

方法

名称作用
emphasizeNode(idx,boolean)提供index和一个布尔值,用于切换是否强调展示结点
emphasizeLink(idx1, idx2, boolean)提供index和一个布尔值,用于切换是否强调展示边

关于默认的MovesReader

  • Array

    支持的mvs格式(8种):

    get(index),swap(index1,index2),add(idx,number),remove(index),barrier(arr),unbarrier(arr),clear(),blank()

    其中:

    • get(index)为高亮一次第index个元素
    • barrier(arr)在第index个元素前添加标记,即Demo中的AddBarrier,可以传递多个参数作为index,如barrier(1,2)
    • unbarrier(arr)用法同上,但是用以删除标记
    • clear()为清除所有barrier标记
    • blank()为什么都不做,等待一次,用于配合其他动作
  • Tree

    支持的mvs格式(5种):

    get(index),swap(index1,index2),insert(index,number),remove(index),blank()

    其中:

    • index为结点在完全二叉树中的位置
    • blank()为什么都不做,等待一次,用于配合其他动作
  • Graph

    支持的mvs格式(6种):

    emp(index),unemp(index),link(index1,index2),unlink(index1,index2),clear(),blank()

    其中:

    • emp/unemp为切换结点的强调展示状态
    • link/unlink为切换边的强调展示状态

    • blank()为什么都不做,等待一次,用于配合其他动作

0.7.2

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.1.0

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago