日韩性视频-久久久蜜桃-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江湖召集令的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 毛片999 | 国产剧情一区在线 | 久久精品国产精品亚洲色婷婷 | 蜜臀在线一区二区三区 | 成人性生交大全免 | 亚洲视频中文 | 在线国产精品一区 | 成人国产片女人爽到高潮 | 91黄址 | 久久精品免费一区二区 | 无码av天堂一区二区三区 | 日本久久99 | 狠狠操人人干 | 麻豆网| 国产有码在线观看 | 成年人性生活免费视频 | 999国产精品视频 | 免费在线看黄视频 | 鲁丝av| 成人在线观看视频网站 | 青苹果av | 日韩精品一区二区三区在线 | 97人妻精品视频一区 | 乱子伦一区二区三区 | 日本黄色大片免费 | 久久九九爱 | 又大又粗又爽18禁免费看 | 性中文字幕 | 成人免费激情视频 | 国产黄色高清视频 | 精品久久久久久久久久久久久久久久久 | 亚洲午夜精品视频 | 国产精品久久久久久久久借妻 | 99福利影院 | 成人免费黄色 | 在线观看国产免费视频 | 国产精品露脸视频 | 中文字幕一区二区人妻 | たちの熟人妻av一区二区 | av在线播放国产 | 国产99久久久国产精品免费看 | 久草视频福利在线 | 欧美日韩国产一区二区三区在线观看 | 久久精品福利 | 青青草自拍偷拍 | 久久bb | 精品国产av色一区二区深夜久久 | 国产视频一区二区在线观看 | 精品少妇无码av无码专区 | 羞辱极度绿帽vk | 91国内精品视频 | 99久精品视频 | 日韩成人综合网 | 日本三级2019| 日韩最新av | 天天干在线观看 | 日韩簧片在线观看 | 国产精品久久久久久福利 | 日本青草视频 | 中文婷婷 | 成人免费版| 97神马影院 | 国产婷婷一区二区三区久久 | 久久久三级视频 | 亚洲一区二区三区不卡视频 | 国产精品一区网站 | 国产亚洲精品成人a | 调教小屁屁白丝丨vk | 无码精品在线观看 | 日日摸日日操 | 国产毛片毛片毛片毛片毛片 | 欧美一区国产一区 | 天堂在线91| 亚瑟av| 不卡视频免费在线观看 | 91视频精选| 国产精品无码久久久久久电影 | 亚洲日本护士毛茸茸 | 午夜在线精品 | 人人妻人人爽人人澡人人精品 | 一本色道久久88 | 欧美xxxx8888 | 日啪| 国产天天骚 | 久久精品国产亚洲7777 | 国产精品美女www爽爽爽 | 国产欧美日韩在线播放 | 强伦人妻一区二区三区 | 成年女人免费视频 | 色欲无码人妻久久精品 | 免费看片网站91 | 婷婷国产 | 人妻丰满熟妇无码区免费 | 日韩欧美一区二区在线 | 在线免费观看高清视频 | 顶臀精品视频www | 人人插人人搞 | 久久公开视频 | 嫦娥性艳史bd |