data/data library

Classes

BallPoint
Point类中主要存储了点的坐标(x,y,z)和要显示的文字(data)。 考虑到球体处于持续动画的状态,如果在渲染每帧动画时去实时地计算渲染文字的Paragraph对象, 那么对系统机能是一个很大的负担,可能会造成画面卡顿。因此,这里采取的做法是,在控件初始化时, 预先计算好点在不同Z坐标时的Paragraph对象并缓存起来(paragraphs),后面渲染动画时直接通过getParagraph(int radius)方法去缓存中取。 同时为了节约内存,每三个相邻的Z坐标只生成一个Paragraph对象。
PointAnimationSequence
PointAnimationSequence类会根据给定的Point对象和needHighLight变量,生成一个动画序列,其中包含了一系列逐渐变化字号大小的段落对象
PositionWithTime
RBallTagData

Enums

GestureType
手势类型

Functions

buildText(String content, double maxWidth, double fontSize, double opacity, bool highLight) Paragraph
convertCoordinate(Offset offset) Offset
getAxisVector(Offset scrollVector) BallPoint
由旋转矢量得到旋转轴方向的单位矢量 将旋转矢量(x,y)逆时针旋转90度即可 x2 = xcos(pi/2)-ysin(pi/2) y2 = xsin(pi/2)+ycos(pi/2)
getRadian(double distance) double
根据手指触摸移动的直线距离,计算球体应该转动的近似角度 单位角度对应的圆弧长度:2pir/2*pi = 1/r
rotatePoint(BallPoint axis, BallPoint point, double radian) → void
计算点point绕轴axis旋转radian弧度后的点坐标 计算依据:罗德里格旋转矢量公式
tagModelFromJson(String str) RBallTagData
tagModelToJson(RBallTagData data) String