日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【猜画小歌】辅助插件FunnyDraw江湖召集令

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【猜画小歌】辅助插件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, 200450, 1000); 復制代碼

MotionDrawerSet

圖形組合器,可以將以上的多個MotionDrawer組合成一個


總結

以上是生活随笔為你收集整理的【猜画小歌】辅助插件FunnyDraw江湖召集令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青娱乐在线视频免费观看 | 一卡二卡久久 | 黄色一级大片免费看 | 成人无码久久久久毛片 | 波多野结衣喷潮 | 久久久天堂 | 西方裸体在线观看 | 日韩一区不卡 | 国产性一乱一性一伧一色 | 97人妻精品视频一区 | 国产伦精品一区二区三区照片 | 自拍视频一区 | 国产精品sm调教免费专区 | 久久视频国产 | 国产经典久久 | aaa色| 色综合色综合网色综合 | www精品国产 | 黄色三级a | 97人妻人人澡人人爽人人精品 | 啪啪激情网| 欧美二三区 | 天堂在线资源网 | 秋霞欧美在线观看 | 国产成人综合一区二区三区 | 国产特级淫片免费看 | 亚洲专区在线视频 | 午夜激情综合 | 日本亚洲网站 | 国产永久免费无遮挡 | 日本三级生活片 | 特级西西人体4444xxxx | 中文字幕一区二区三区人妻 | 国产精品视频免费播放 | 国产精品毛片在线 | 解开人妻的裙子猛烈进入 | 亚洲 欧美 日韩系列 | 免费看黄色网址 | 伊人久久大香线 | 天天草综合 | 欧美日韩专区 | 91亚洲精选 | 国色综合 | 亚洲精品日韩精品 | 特黄a级片 | 美国黄色网址 | 夜夜撸av | 亚洲91精品 | 日本少妇一级 | 亚洲一区二区三区在线 | 国产一区二区三区在线视频观看 | 在线观看中文字幕第一页 | 免费一级suv好看的国产网站 | 久久久久亚洲av成人无码电影 | aaa国产精品 | 国产suv精品一区二区四 | 私人影院毛片 | 久久久国产精品免费 | 久久精品国产露脸对白 | 国产999久久久 | 久久久久久久亚洲av无码 | 欧美人妻日韩精品 | 国产女同视频 | 婷婷亚洲综合 | 日本一区二区不卡在线观看 | 欧美变态绿帽cuckold | 日韩精品字幕 | 亚洲精品久久久久久久久久 | 亚洲免费综合 | www.黄色av | 无码播放一区二区三区 | 国产一区二区三区亚洲 | 欧美多p| 国产精品成人久久久久 | 国产不卡精品视频 | h视频在线看 | 在线观看亚洲 | 午夜视频91 | 奶波霸巨乳一二三区乳 | 精品深夜av无码一区二区老年 | 欧美播放 | 欧美色图30p | 美女av免费 | 男女无遮挡xx00动态图120秒 | 精品久久不卡 | 性感美女视频一二三 | 亚洲一区二区三区不卡视频 | aaa人片在线 | 99久久香蕉 | 97超碰在线免费 | 中文字幕精品无码一区二区 | 国产精品制服丝袜 | 性爱免费在线视频 | 国产aⅴ激情无码久久久无码 | 一区二区三区中文字幕 | 久久久久人妻一道无码AV | 亚洲一区二区视频在线 | 国产欧美日韩亚洲 | 国产精品毛片久久久久久久 |