实时手绘抖动效果库 - 让您的App绘制功能充满生动魅力
WiggleDrawingKit 是一个跨平台的实时手绘抖动效果库,专为移动应用和Web应用设计。用户手绘时,线条会实时产生类似WigglyPaint的抖动效果,无需外部文件,内存友好,性能卓越。
- 🎯 零文件依赖 - 无需导出动画文件,实时计算抖动效果
- 🚀 跨平台支持 - iOS、Android、Web 统一API
- ⚡ 高性能 - 硬件加速渲染,60fps 流畅动画
- 🎛️ 易于集成 - 一行代码即可添加抖动绘制功能
- 🎨 高度可定制 - 丰富的参数配置和预设效果
- 📱 响应式设计 - 完美支持多种屏幕尺寸和设备
// 添加到项目
import WiggleDrawingKit
// 一行代码集成
let wiggleView = addWiggleDrawing(to: view, settings: .normal)
// 自定义样式
wiggleView.strokeColor = .systemBlue
wiggleView.lineWidth = 5.0
// 设置回调
wiggleView.onDrawingComplete = { path in
print("绘制完成:\(path.points.count) 个点")
}// 添加到项目
import com.yourapp.wiggledrawing.*
// 一行代码集成
val wiggleView = WiggleDrawingKit.addWiggleDrawing(container, WiggleSettings.NORMAL)
// 自定义样式
wiggleView.strokeColor = Color.BLUE
wiggleView.strokeWidth = 10f
// 设置回调
wiggleView.onDrawingComplete = { path ->
Log.d("WiggleDrawing", "绘制完成:${path.points.size} 个点")
}// 引入库文件
import { WiggleDrawingCanvas, WiggleSettings } from './WiggleDrawingKit_Web.js';
// 创建抖动画布
const wiggleDrawing = new WiggleDrawingCanvas(canvas, {
wiggleSettings: WiggleSettings.NORMAL,
strokeColor: '#3366ff',
lineWidth: 4
});
// 设置回调
wiggleDrawing.onDrawingComplete = (path) => {
console.log(`绘制完成:${path.points.length} 个点`);
};
// 开始动画
wiggleDrawing.startWiggleAnimation();import { useWiggleDrawing, WiggleSettings } from './WiggleDrawingKit_Web.js';
function DrawingApp() {
const { canvasRef, paths, clearDrawing } = useWiggleDrawing({
wiggleSettings: WiggleSettings.NORMAL
});
return (
<div>
<canvas ref={canvasRef} width={400} height={300} />
<button onClick={clearDrawing}>清除</button>
<p>已绘制 {paths.length} 条路径</p>
</div>
);
}| 预设 | 适用场景 | 特点 |
|---|---|---|
GENTLE |
精细UI操作 | 温和、细腻的抖动 |
NORMAL |
通用推荐 | 经典WigglyPaint效果 |
ENERGETIC |
吸引注意力 | 活跃、明显的抖动 |
CRAZY |
游戏特效 | 夸张、疯狂的抖动 |
WiggleDrawingKit/
├── ios/ # iOS平台实现
│ └── WiggleDrawingKit_iOS.swift
├── android/ # Android平台实现
│ └── WiggleDrawingKit_Android.kt
├── web/ # Web平台实现
│ └── WiggleDrawingKit_Web.js
├── examples/ # 示例项目
│ ├── draw_and_wiggle.html # Web演示
│ ├── iOS_Example/ # iOS示例项目
│ └── Android_Example/ # Android示例项目
├── docs/ # 文档
│ ├── Integration_Guide.md # 集成指南
│ ├── API_Reference.md # API文档
│ └── Performance_Guide.md # 性能优化指南
└── README.md # 项目说明
- 手写练习 ✏️
- 创意绘画 🎨
- 数学几何 📐
- 魔法绘制 ✨
- 涂鸦游戏 🎮
- 互动故事 📚
- 艺术创作 🖼️
- 动画制作 🎬
- 设计工具 🎯
- 签名确认 ✍️
- 用户反馈 💬
- 互动营销 📢
- 内存优化: 比传统动画文件方案减少90%内存占用
- CPU效率: 智能算法,低CPU消耗
- GPU加速: 硬件加速渲染,流畅60fps
- 电池友好: 后台自动暂停,智能帧率控制
const customSettings = new WiggleSettings({
intensity: 2.5, // 抖动强度 (0-10)
speed: 0.08, // 抖动速度 (0.01-0.3)
frequency: 1.2, // 抖动频率 (0.1-5)
randomness: 0.6 // 随机性 (0-2)
});- 🌐 Web演示 - 在线体验
- 📱 iOS示例 - 完整iOS应用
- 🤖 Android示例 - 完整Android应用
- iOS原生支持
- Android原生支持
- Web/JavaScript支持
- React/Vue集成
- Flutter插件
- React Native模块
- Unity3D包
- 矢量图形支持
- 实时协作功能
欢迎贡献代码!请查看 贡献指南 了解详情。
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 灵感来源于 WigglyPaint 项目
- 感谢所有贡献者和用户的支持
WiggleDrawingKit - 让您的App充满生动的绘制体验! 🎨✨
如果这个项目对您有帮助,请给个 ⭐ Star 支持一下!
