Flutter实现自旋转的伪3D球
一个自动旋转的仿3D球体。基于https://github.com/al4fun/3DBall,进行二次封装。
特性
- 支持手动/自动转动
- 支持暂停/继续转动控制
- 支持高亮处理部分标签
思路
- 建立了一个虚拟的3d坐标系:坐标原点位于球心,Z轴垂直于屏幕并指向屏幕外。根据球面方程将需要绘制的点均匀散布到整个球面上。
- 由点坐标可以得到点在XY平面上的投影位置;根据点到球体最前方垂直切面的距离,计算点的尺寸和颜色值(距离越远,尺寸越小,颜色越暗淡)。
- 由球体旋转的方向和位移可以得到球体的旋转轴矢量和旋转角,进而可由罗德里格旋转公式计算出旋转后点的坐标。
Getting Started
1 | RBallView( |