【猜画小歌】辅助插件FunnyDraw江湖召集令
先来一张效果图:
源码地址: https://github.com/MegatronKing/FunnyDraw
项目提供了绘图框架,但只实现了少部分图案,仍需广大人民群众一起拿起键盘来画画
再来几张样例(虽然图形不匹配)
使用方式
第一步:运行安装App并启动
第二步:启动server
adb shell
export CLASSPATH=/data/local/tmp/com.github.megatronking.funnydraw
exec app_process /system/bin com.github.megatronking.funnydraw.Main '$@'
复制代码
第三步:点击App中“猜画小歌测试”按钮,同意悬浮窗权限。
第四步:打开微信启动猜画小歌小程序,选择右侧列表中图案进行自动绘制。
注意事项
- 部分手机需要在开发者模式中打开模拟点击开关,比如小米手机等。
项目参与及调试
Fork & Clone源码后,按照以下步骤添加自定义实现的Sample,然后提交Pull Request。参与越多,项目完成度将越高!
调试模拟器
每次修改代码后,在猜画小歌小程序中测试都需要重启server,为了简化此过程,可以直接在App内调试。点击首页“当前应用调试”。
编写一个简单的Sample,比如圆形
使用CircleMotionDrawer开发,定义好圆心、半径、绘制时间即可。
public class CircleSample implements Sample {@NonNull@Overridepublic MotionDrawer buildDrawer(Canvas canvas) {// 根据画布位置和尺寸,将圆置于画布中心return new CircleMotionDrawer(canvas.centerX, canvas.centerY, canvas.width / 4,DEFAULT_DURATION);}}
复制代码
编写一个复杂的Sample,比如酒杯
复杂的图案,需要组合各种MotionDrawer,可以使用MotionDrawerSet来组合。
public class WineGlassSample implements Sample {@NonNull@Overridepublic MotionDrawer buildDrawer(Canvas canvas) {// 杯口的椭圆int topOvalRadiusX = 200;int topOvalRadiusY = 100;int topOvalCenterX = canvas.centerX;int topOvalCenterY = canvas.centerY - 400;OvalMotionDrawer drawer1 = new OvalMotionDrawer(topOvalCenterX, topOvalCenterY,topOvalRadiusX, topOvalRadiusY, 0, 1000);// 杯底的椭圆int bottomOvalRadiusX = 100;int bottomOvalRadiusY = 50;int bottomOvalCenterX = canvas.centerX;int bottomOvalCenterY = canvas.centerY + 400;OvalMotionDrawer drawer2 = new OvalMotionDrawer(bottomOvalCenterX, bottomOvalCenterY,bottomOvalRadiusX, bottomOvalRadiusY, 0, 1000);// 杯身两侧的圆弧,画贝塞尔曲线int glassBottomX = canvas.centerX;int glassBottomY = canvas.centerY + 150;QuadBezierMotionDrawer drawer3 = new QuadBezierMotionDrawer(topOvalCenterX - topOvalRadiusX,topOvalCenterY, glassBottomX, glassBottomY, canvas.left, canvas.centerY, 1000);QuadBezierMotionDrawer drawer4 = new QuadBezierMotionDrawer(topOvalCenterX + topOvalRadiusX,topOvalCenterY, glassBottomX, glassBottomY, canvas.right, canvas.centerY, 1000);// 杯柄LineMotionDrawer drawer5 = new LineMotionDrawer(glassBottomX, glassBottomY,bottomOvalCenterX, bottomOvalCenterY - bottomOvalRadiusY, 500);// 按照绘制的顺序组合起来return new MotionDrawerSet(drawer1, drawer2, drawer3, drawer4, drawer5);}}复制代码
将开发好的Sample加入到浮窗列表
在assets目录的samples.xml文件中配置好sample的类路径和名称。
<?xml version="1.0" encoding="utf-8"?>
<samples package="com.github.megatronking.funnydraw.sample"><sample name="酒杯" class=".WineGlassSample"/><sample name="圆形" class=".CircleSample"/>...
</samples>
复制代码
API文档
LineMotionDrawer
绘制直线
// 从坐标(500,500)直线绘制到坐标(600, 600),绘制时间1000ms
MotionDrawer drawer = new LineMotionDrawer(500, 500, 600, 600, 1000);
复制代码
CircleMotionDrawer
绘制圆形
// 以坐标(500,500)为圆心,100为半径,按顺时针绘制,绘制时间1000ms
MotionDrawer drawer = new CircleMotionDrawer(500, 500, 100, 1000);
复制代码
OvalMotionDrawer
绘制椭圆形
// 以坐标(500,500)为圆心,100为x轴半径,50为y轴半径,按顺时针绘制,绘制时间1000ms
MotionDrawer drawer = new OvalMotionDrawer(500, 500, 100, 50, 1000);
复制代码
RectMotionDrawer
绘制矩形
// 以坐标(100,100)、(500,100)、(500,500)、(100,500)为四个矩形点,按顺时针绘制,绘制时间1000ms
Rect rect = new Rect(100, 100, 500, 500);
MotionDrawer drawer = new RectMotionDrawer(rect, 1000);
复制代码
TriangleMotionDrawer
绘制三角形
// 以坐标(100,100)、(300,100)、(200,200)为三角形顶点,按顺时针绘制,绘制时间1000ms
MotionDrawer drawer = new TriangleMotionDrawer(100, 100, 300, 100, 200, 200, 1000);
复制代码
SerialLinesMotionDrawer
绘制连续线段
Point p1 = new Point(0, 0);
Point p2 = new Point(50, 50);
Point p3 = new Point(100, 200);
Point p4 = new Point(200, 500);
// 连接多个点,按照顺序绘制,绘制时间3000ms
MotionDrawer drawer = new SerialLinesMotionDrawer(new Point[]{p1, p2, p3, p4}, 3000);
复制代码
QuadBezierMotionDrawer
绘制二阶贝塞尔曲线
// 以坐标(100,100)为曲线起点、坐标(300,300)为曲线终点、坐标(200,200)为控制点,绘制时间1000ms
MotionDrawer drawer = new QuadBezierMotionDrawer(100, 100, 300, 300, 200, 200, 1000);
复制代码
CubicBezierMotionDrawer
绘制三阶贝塞尔曲线
// 以坐标(100,100)为曲线起点、坐标(300,300)为曲线终点、坐标(200,200)和(200,250)为控制点,绘制时间1000ms
MotionDrawer drawer = new CubicBezierMotionDrawer(100, 100, 300, 300, 200, 200, 200,450, 1000);
复制代码
MotionDrawerSet
图形组合器,可以将以上的多个MotionDrawer组合成一个
【猜画小歌】辅助插件FunnyDraw江湖召集令相关推荐
- 猜画小歌小程序辅助工具
一.项目简介 猜画小歌小程序辅助工具 二.实现功能 支持绘制直线 支持绘制圆形 支持绘制椭圆形 支持绘制矩形 支持绘制三角形 支持绘制连续线段 支持绘制二阶贝塞尔曲线 支持绘制三阶贝塞尔曲线 三.技术 ...
- 一夜刷屏的「猜画小歌」遭到反编译,内部还暗藏哪些玄机?
Mobile First To AI First!Google 携第一款微信小程序开始在中国 AI 领域试水. 昨天,Google AI 在国内发布了一款微信游戏小程序「猜画小歌」,瞬间刷爆了朋友圈, ...
- 厦门日报:猜画小歌的纠错助手来自厦门
摘要: 谷歌推出的这款AI微信小程序风靡网络,厦门市创业团队为其提供排除程序错误服务 本报讯 (记者 林露虹 实习生 刘冰莹)让人工智能猜一猜你画的是什么东西,猜出来就算过关.最近一段时间,谷歌AI的 ...
- AI版「按图索骥」,比猜画小歌更复杂的的AI交互游戏
郑集杨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你能在时间结束前根据Emoji找到你身边的物品吗?大概,像这样: 跟我玩?不不不,是你自己跟这个AI玩,找出东西然后让AI辨认它. 这并 ...
- “猜画小歌”的一些细节和思考
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由徐钒文 发表于云+社区专栏 Quickdraw的CNN-RNN模型 "猜画小歌"用到的quickdraw模型本质上 ...
- 从「猜画小歌」,谈企业的「数据困惑」该何去何从?
「猜画小歌」坐拥5000万组大数据,你怎么看? Google很会玩. 当所有做云计算.大数据.手机的厂商在广而告之其先进的技术能力时,通常采用直白宣讲式的说教,落地的东西却很少,听多了也就是过眼烟云. ...
- Google猜画小歌升级:现在可以跟好友对战了
问耕 发自 凹非寺 量子位 出品 | 公众号 QbitAI 今天,Google开发者大会在上海举行. Google中国的一些运营和开发者负责人,上台简要介绍了目前Google的相关进展.(不少老外讲中 ...
- 你的灵魂画作都去哪儿了?“猜画小歌”背后的5000万组数据
大数据文摘公众号(ID:BigDataDigest)出品 作者:魏子敏.halcyon 自从退出中国的搜索引擎市场,谷歌大概无时不刻都想"卷土重来".昨天,这家以搜索引擎著称的巨头 ...
- 《猜画小歌》背后趣事
前言 这个博客是补上周的,这次就聊一聊轻松的话题.要问这几天哪个游戏最火爆,非<猜画小歌>莫属,作为一个资深游戏爱好者,自然不能放过,连着完了N多盘,发现真的是爱不释手.下面就来说说< ...
最新文章
- 可视化的进行Sprint规划上线-Leangoo敏捷项目管理软件
- 什么是网络光端机?网络光端机工作原理及功能介绍!
- 数据库-MySQL-数据库设计-表的关联
- 995. K 连续位的最小翻转次数
- 个人作品- 蘑菇大战
- lj245a引脚功能图_JRC4558中文资料|引脚图及功能|应用电路图
- 硬盘容量统计神器WinDirStat
- 梦幻服务器最新开服时间,梦幻服务器开区及合服时间汇总查询(2)
- WIFI系列协议--802.11--系列协议说明
- 2022年全球市场软件无线电平台总体规模、主要企业、主要地区、产品和应用细分研究报告
- RTI_DDS调试日志
- Java基础篇--概念理解(泛型、注解)
- 经历121,市场情绪极度恐慌,美联储加息对我们有什么影响,币圈人又该何去何从?
- poi 启用保护后取消_保护模式禁用怎么解除
- 服务器临时文件的后缀名,在Java中创建具有指定扩展名后缀的临时文件
- galaxy 用不了_开箱即用使Galaxy S9更好的六种方法
- leetcode 跳跃游戏系列 c++
- 【2010强悍教程】一次性永远激活7290自带浏览器上网和彩信收发功能,不能上网的进。...
- 备战秋招-oppo java一面 面经
- pve7 安装rhel9.0报错之Fatal glibc error: CPU does not support x86-64-v2处理及Kernel panic - not syncing
热门文章
- 分治法在求解“最近对”问题中的应用(JAVA)
- jQuery教程08-属性筛选选择器
- 删除服务中的mysql服务
- SimpleDateFormat的一些简单用法:时间类型转字符串,字符串转时间
- android 屏幕坐标色彩,Android自定义View实现颜色选取器
- pythonwebview自动化测试_GitHub - githubwzg/python-appium: 基于PageObject UI自动化测试框架,支持Android/iOS...
- finereport字段显示设置_QA | 表单如何设置字段显示逻辑?
- 计算机应用基础知道,谁知道计算机应用基础练习题的答案?
- MongoDB简介、在node中使用MongoDB
- Java基础知识融合(Arraylist集合,多态,继承,封装,包装类,循环嵌套,if嵌套等等)