ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】魚眼レンズを実装する。

成果物

f:id:Nekodigi:20200728205700p:plain
f:id:Nekodigi:20200728210022p:plain
D3.jsのサンプルで魚眼レンズが紹介されていたので、早速実装してみました。部分的に拡大できるのが特徴です。円形に拡大するものと、軸を拡大するものがあります。座標変換の結果を利用すれば、画像変形などもできそうです。※軸を変形させる方は、まだ逆変換ができそうなのですが、もう一つは逆変換が難しいので、画像変形も難しそうです。逆変換に頼らない画像変形も今後探していきたいです。

仕組み

こちらのコードをもとにしています。拡大率と、範囲、焦点を変更できます。詳しい導出は分かりませんでしたが、周囲とのずれなく拡大できます。
d3-plugins/fisheye.js at master · d3/d3-plugins · GitHub
Fisheye Distortion

コード

Axis Fisheye, Normal Fisheyeという名前で追加しています。
github.com