2015年9月30日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/web-audio-api-stereo-pannernode.html

摘要:
通常我們在電影院看電影時,高檔一點的電影院會有立體音響 ( 特別是 iMax3D ),讓我們有置身在電影場景裡的感受,然而在 Web Audio API 裡也有類似的功能,讓我們可以模擬出立體的聲音,而這項技術雖然還沒有被廣泛應用,但根據現有的資訊,未來應該將會與 WebGL 結合,廣泛用於 360 度影片、Web 遊戲...等需要有立體聲音的技術領域,這篇將會做一些簡單的介紹。

2015年9月29日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/web-audio-api-audioparam-gainnode.html

摘要:
上一篇 有介紹到 GainNode 這個控制聲音大小的節點模組,但並沒有深入介紹相關的用法,這篇就要來談談 GainNode 的操作處理,由於 GainNode 實在簡單,因為它只有一個屬性叫做「gain」,所以一定要先介紹「AudioParam」這個 Audio 的參數。

2015年9月28日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/web-audio-api.html

摘要:
隨著 web 技術的蓬勃發展,在網頁裡播放音樂已經可以不需要透過 flash 或 quicktime 等外掛程式輔助,純粹使用 HTML5 的 audio tag 就可以播放音樂,甚至可以透過 W3C 所規範的 Web Audio API 就可以做許多進階的聲音控制和應用,接觸到的時候覺得實在太有趣,一定要寫一些文章在記錄一下。而 Web Audio API 的主要文件可以參考:http://webaudio.github.io/web-audio-api/ 要使用 Web Audio API,第一步就是要創建一個 AudioContext,AudioContext 是一個聲音的容器,在 AudioContext 裡,我們可以針對聲音做各種的處理,在裡頭,AudioSourceNode 表示音訊來源,而聲音是以節點的方式 ( AudioNode ) 存在,每個節點都有輸入和輸出,只有來源節點沒有輸入,聲音除了可以用外部的輸入 ( wav、mp3、ogg...等 ),也可以使用振盪器 ( Oscillators ) 來產生,原理就有點像我們彈奏弦樂器,也是利用樂器內的弦震盪來發聲。

2015年9月20日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-20-bar-chart-tainan-dengue.html

摘要:
在 上一篇 我們介紹了長條圖的畫法,因為之前看過有人做了高雄和台南登革熱病例的長條圖 ( 不過他們不是用 d3.js 做的 ),所以想說自己學了 d3.js 也來試試看,雖然還做不到跟地圖結合,但可以將數字表格轉換成可視的圖形,就更容易理解疫情的變化囉。 因為要繪圖,就需要資料,我這邊使用的資料是台南的登革熱每日病例 ( 參考 104年臺南市本土登革熱病例數,使用 csv 需要跨域,可以用後端爬一份放在自己的 server 即可,不過覺得台南市政府可以用成英文啦,中文會有編碼的問題呀! ),我抓了一份 csv 檔,用裡面的「確診日期」以及「編號 ( 加總就變成病例數 )」,就可以得到我們要畫圖的 data。
完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-19-bar-chart.html

摘要:
在之前一系列的 d3.js 介紹之後,終於要來發揮 d3.js 的強項「畫圖表」了 ( 其實之前已經有畫過折線圖了,參考:SVG D3.js - 區域 ( area ) ),這篇要來繪製的圖表是「長條圖 bar chart」,長條圖大概也是最簡單的圖表了,雖然可以直接用 CSS 和 div 來做,不過為了之後更複雜的圖表設計,這裏就直接用 SVG 進行。

2015年9月18日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-18-enter-update-exit.html

摘要:
在我之前的文章有談過 D3.js 的資料處理,這篇要來在介紹一下資料處理當中很重要的三個元素:enter、update 和 exit ( 不知道為什麼當初寫那篇文章沒有寫到哈哈 ),為什麼說很重要呢?因為這三個元素可以處理當畫面元素 ( Elements ) 和資料數量 ( data ) 不相等的情形。

2015年9月16日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-17-zoom-behavior.html

摘要:
上一篇我們提到了拖拉行為 Drag Behavior,但在視覺化圖表的世界裡,如果只有拖拉好像還是不夠的,因此 d3.js 也很貼心的設計了「縮放行為」( Zoom Behavior ),讓我們可以透過例如滑鼠滾輪滾動或手指的手勢,就可以進行圖表的縮放,這篇也將要來探討是如何實作的,畢竟縮放的效果在 web 領域是比較少見也比較不容易實做,而 d3.js 與 svg 的結合,讓這個效果可以輕鬆愜意的展現。 zoom 的用法和 drag 滿類似的,都是一開始要先用d3.behavior.zoom();宣告行為,然後再使用call來呼叫,不過 zoom 相對又稍微複雜了些,因為又多了一些參數需要設定,讓我們先來看一下它提供了哪些 api:

2015年9月14日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-16-drag-behavior.html

摘要:
這篇要來談一下 d3.js 裏頭的「拖拉行為」( Drag Behavior ),其實 drag 這個行為在 web 的世界裡頭早就存在已久,HTML5 出來之後更變成了一些基本的網頁行為,不過這個行為在 d3.js 該如何實現呢?其實 d3.js 早就已經幫我們做好了,不僅適用在 svg 裡頭,更可以應用在一般的網頁元素上頭。 要使用 d3.js 的 drag,一開始必須要先利用d3.behavior.drag()宣告這個行為,接著在裡面寫入dragstart、drag和dragend要做些什麼事,接著再讓我們的選擇的物件用call去呼叫,就可以讓我們選擇的物件具有 drag 的行為,用講的不是很好理解,用程式碼一步步分解來看。
完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/svg-d3-15-transition-tween.html

摘要:
之前有介紹過 d3.js 基本的 transition ( 好像是一月份的事情了,真是好久以前啦... ),這篇要來談談比較難的 tween ( 補間動畫 ),在之前的 transition 都是使用 d3.js 預設的補間動畫,而 tween 可以透過一個函式,指定中間過場的行為,這個方式其實很好用,因為我們除了基本的長、寬、位置、顏色,更可以做出文字、數字...等電腦不知道如何做補間動作的效果 ( 例如 1~10 的數字變換 ),而 tween 通常會搭配 interpolate 一起服用,所以這篇就一起來介紹。

2015年9月7日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/sandstorm.html

摘要:
SandStorm 是我偶然發現的一個 Photoshop 效果,它其實不是 Photoshop 內建的功能,而是有人做出來的一系列行為 ( Action ),也就是一連串的動作所組成,最後產生有如會畫一般的粒子效果,也就像 SandStorm 的名稱一樣,沙塵暴。

2015年9月6日

完整文章位於 OXXO.STUDIO 新網站
點選閱讀完整文章:
http://www.oxxostudio.tw/articles/201509/web-speech-api.html

摘要:
又是因為工作的緣故,接觸到 Google 語音辨識的 api,實在覺得還滿有趣的,由於是 Chrome 內建的功能,所以不需要額外載入其他資源就可以運行,算是相當的便利,不過也很可惜的現在就只有桌上版的 Chrome 才支援,可惜了連 iPhone 和 iPad 都不能跑呀!( 不過我相信未來應該會支援的,畢竟瀏覽器的發展就是這樣咩,而且 iOS 平台的 Google App 也有內建語音辨識呀,但也不太一定,畢竟 iOS 上頭有個 Siri... )