1. 程式人生 > >1.5kb 程式碼讓圖片抖起來

1.5kb 程式碼讓圖片抖起來

提醒:本文最後更新於 1613 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

使用閱讀器的同學請點選此處檢視本文!

又有很長一段時間沒更新部落格。倒不是因為沒啥可寫,而是最近做的一些研究要麼跟公司專案密切相關;要麼不是三言兩語能說清楚,所以更多時候直接就內部分享了。

後續我會盡量找一些跟業務沒直接關係的內容更新上來。當然你也可以選擇加入我所在的團隊,一起做一些有意義的東西^_^

今天給大家分享的是最近做的一個小東西的區域性:利用少量 js 程式碼讓圖片抖動起來。原理很簡單:利用 Canvas Context 的 getImageData 和 putImageData 兩個方法來獲取/更新畫布上每一個畫素;抖動是利用橢圓圓心偏移和對映實現的。你可以想象先把橢圓的圓心挪個位置,再把橢圓原來每條半徑上每一個點都對映到新半徑上就可以了。

整個程式碼 gzip 後不超過 1.5kb,而且不依賴於任何 js 庫(Chrome、Firefox、最新的 IE 都可以執行)。

如果小貓不動了就重新整理下頁面。 這個 demo 加了運動衰減係數,過會兒就停了~

關於這個 demo,我想多說幾句:

  1. Canvas 在移動裝置上的效能真是弱爆了。一開始這個 demo 在大部分手機上 FPS 超不過 10,後來@月影大牛把核心演算法由代數運算改成了向量運算,才能在大部分手機上流暢執行;
  2. 學好數學很重要,原因見 1;
  3. Web Worker 和 WebGL 兩者在移動端上的糟糕支援度,暫時是想都不用想了;
  4. 在 iOS 的 webview 中,這個 demo 非常卡。這是因為 Apple 之前不把比較好的 JS 引擎給第三方用,當然 iOS8 開始就沒這個問題了。換句話說,對於 iOS8-,任何第三方瀏覽器都不如系統自帶 Safari;
  5. 原始碼:初始版改進版

最後,放一個支援編輯的版本供大家娛樂下(左右兩位是我現任老大,中間是大牛前輩),手機使用者請點開這個連結。(附送福利向蛋黃前輩致敬

編輯 取消 新增 刪除 玩耍

--EOF--

提醒:本文最後更新於 1613 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

1.5kb 程式碼圖片起來

提醒:本文最後更新於 1613 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 使用閱讀器的同學請點選此處檢視本文! 又有很長一段時間沒更新部落格。倒不是因為沒啥可寫,而是最近做的一些研究要麼跟公司專案密切相關;要麼不是三言兩語能說清楚,所以更多時候直接就內部分享了。 後續我會盡量找一些跟業

[Vue進階]為什麼我的程式碼別人看起來頭皮發麻?

面試官:談談你們專案當中的前端程式碼規範吧? 自己先想一分鐘。 前面的話 有些同學在開發某個新功能時根據需求就哐哐哐(按照自己的程式碼風格)一頓擼。寫完發現,另一個地方也有這個模組功能,可能只是標題的顏色,字型大小不對。怎麼辦? 於是很雞賊的複製貼上過去,改吧改吧,提交程式碼

簡單的程式碼turtlebot動起來 直行與旋轉

之前都是使用鍵盤控制turtlebot的行走,於是想寫段程式碼可以讓turtlebot自己動起來,畢竟今後的工作是想讓機器人在地圖上可以實現自行路徑規劃到達指定的目的地。 啟動turtlebot後在命令列敲入rostopic list我們可以看到當前所有的topic

簡單的程式碼turtlebot動起來II(使用kobuki底座)走三角形

接著上一篇turtlebot的直行和旋轉。 ROS中,節點之間通過訊息溝通,主題相當於是對訊息進行路由和管理的匯流排。節點向主題釋出訊息即表示一個節點在傳送資料;節點訂閱某個主題即可以接受其他節點的訊息。在上一篇的直行和旋轉當中,我們只寫一個publisher,僅僅有話題

CSS——圖片起來

技術 info bubuko ima height 分享 color div style 2019-03-13 09:53:55 1 //把圖片浮與其他元素上面 2 position:fixed; right:0px; bottom:0px 效果:

程式設計師的小技能,1程式碼修改開機密碼、1圖片你電腦宕機

程式設計師很忙,忙著敲程式碼debug,程式設計師有時候也很閒,閒下來的就是就開始自黑,自黑的段子越來越多還被編出了一首詩:“格子襯衫雙肩包、錢多話少死得早,晚睡晚起加班多,沒事就和產品吵”。這屬於藝術,來源於生活,也高於生活,有了誇張的成分。 程式設計師作為一個門檻較高的職業,從業人員的

js+css背景圖片起來

margin mage fun width col type images doc anim <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

一個圖片平滑移動的js小程式碼

/**          * @param _speed 圖片移動速度          * @param _slide 滑塊主體          * @param _slide_ul 滑塊列表          * @param _slide_total 圖片列表本體  

webstorm的live templates快速編輯功能,你的css JS程式碼書寫速度飛起來

前言: Emmet的前身是大名鼎鼎的Zen coding,如果你從事Web前端開發的話,對該外掛一定不會陌生。它使用仿CSS選擇器的語法來生成程式碼, 大大提高了HTML/CSS程式碼編寫的速度,比如下面的演示:    但是對於我們來說這遠遠不夠,我還想寫css js呢,有

【開源】1程式碼搞定圖片批量上傳,無需什麼程式碼功底【無語言界限】

/// <summary> /// 圖片上傳 /// </summary> /// <returns></returns> public JsonResult Upload(HttpPo

怎樣一張圖片起來

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>圖片

Android高效內存1:一張圖片占用多少內存

像素 更多 內存 加載 手機 mic style 占用 們的   在做內存優化的時候,我們發現除了解決內存泄露問題,剩下的就只有想辦法減少真實的內存占用。而在App中,大部分內存可能被我們圖片占用了,所以減少圖片的內存占用可以帶來直接的效果。本文就簡單介紹一張圖片到底占用多

js實現緩動效果-div運動起來

rect() prop star this line ret rtti logs start var tween = { linear:function(t,b,c,d){ return c*t/d + b; }, eas

Unity Shader入門精要學習筆記 - 第11章 畫面動起來

位置 視覺效果 想要 朝向 系列 圖像 顏色 offset star 轉自 馮樂樂的 《Unity Shader入門精要》 Unity Shader 中的內置變量 動畫效果往往都是把時間添加到一些變量的計算中,以便在時間變化時畫面也可以隨之變化。Unity Shader 提

插上翅膀,Excel飛起來——xlwings(一)

圖片 pos 取數據 數組 並保存 () 讀取 pda 取數 python操作Excel的模塊,網上提到的模塊大致有:xlwings、xlrd、xlwt、openpyxl、pyxll等,他們提供的功能歸納起來有兩種:一、用python讀寫Excel文件,實際上就是讀寫有

插上翅膀,Excel飛起來——xlwings(四)

列表 gin 修改名稱 udfs imp 前言 百度網盤 解決 而不是 前言 當年看《別怕,Excel VBA其實很簡單》相見恨晚,看了第一版電子版之後,買了紙質版,然後將其送人。而後,發現出了第二版,買之收藏。之後,發現Python這一編程語言,簡直是逆天,業余非程

有人想汽車無人化,但有人想汽車飛起來

常用 不同的 規範化 lin 難題 style 分享 耗時 -h 未來的出行方式,應該是生活幻想中空間最廣闊的一種。有人認為未來出行全靠一輛輛無主的自動駕駛汽車,有人認為未來可以通過粒子傳送實現瞬間移動……既然是幻想,那麽多離譜都不過分,比如說我就認為巨型的鋼鐵蜘蛛才是最適

VUE devtools 調試工具安裝 vue飛起來

女朋友 npm 調試工具 github 解壓 json 選擇 打開 shells 安裝: 1.到github下載: git clone https://github.com/vuejs/vue-devtools 2.在vue-devtools目錄下安裝依賴包 cd vue-

插上翅膀,Excel飛起來——xlwings(二)

數組 百度 激活 true sting com 修改 file href 常用函數和方法 Book 工作簿常用的apiwb=xw.books[‘工作簿名稱‘] wb.activate()激活為當前工作簿 wb.fullname 返回工作簿的絕對路徑 wb.name 返

wpf圖片自適應容器大小,而且又不會拉昇變形

1 <Grid Grid.Column="3" 2 Margin="0,4,0,0" 3 Background="Black"> 4 <Viewbox> 5