SlideShare a Scribd company logo
1 of 45
Download to read offline
使ってますか?
CSS matrix3d
比留間 和也
HTMLファイ部/人事部
https://twitter.com/edo_m18 http://qiita.com/edo_m18
matrix3dは
使ってますか?
matrix3dのイメージ
• 引数多い
• 行列とか聞きなれない
• 適当に値入れても想像通り動かない
30 回転させただけで
数値がたくさん
((((;゚Д゚))))
でもtransform-functionを使えば
手軽に3Dの効果が得られる
• rotate() / rotate3d()
• translate() / translate3d()
• scale() / scale3d()
Demo
ゲームも作れる
CSS3Dで実現したルービック・キューブ
でも・・・
ユーザの操作を逐一適
用していくと・・
2回回転を適用
24回適用・・・((((;゚Д゚))))
延々と増えていく…
(゚ ゚)!!
回転自体をまとめちゃえ
ばいいんじゃね?(゚ ゚)
BUT!!
適用する順番が違うと
結果が異なる
http://jsdo.it/edo_m18/1EGy
( ꒪⌓꒪)…
なんとかひとつにまと
められないかな・・・
できます
そう、行列ならね
(振り出しに戻る)
行列には回転や平行移動
を表す決まった形がある
平行移動を表す行列
拡大・縮小を表す行列
X軸に対する回転を表す行列
Y軸に対する回転を表す行列
Z軸に対する回転を表す行列
行列を掛け算すると
ひとつの行列になる
| 1 5 9 13 | | 11 15 19 23 | | 370 482 594 706 |
| 2 6 10 14 | x | 12 16 20 24 | = | 420 548 676 804 |
| 3 7 11 15 | | 13 17 21 25 | | 470 614 758 902 |
| 4 8 12 16 | | 14 18 22 26 | | 520 680 840 1000 |
つまり
ひとつの行列で
複数の結果を表すことができる
ktkr(゚ ゚)!!
ただ、行列の計算は
結構めんどう
行列の計算はライブラリに
任せちゃいましょう
行列関連のライブラリ
• ewgl-matrices

WebGL 用の超高速行列ライブラリ
• glMatrix

高性能WebGLアプリ製作の為の、行列とベクトルのJavaScriptライブラリ
• mjs

WebGL用に最適化されたベクトルと行列の計算を行うJavaScriptライブラリ
• Sylvester

ベクトルや行列を操作する為のオープンソースライブラリ。

WebGL用として最適化されたものではありませんが、非常に堅牢です。
ちなみに
独自ライブラリを公開中
https://github.com/edom18/MathJS
こんな感じで使います
var target = document.getElementById(‘test2');
!
var rMatrix = mat4.rotate(mat4(), 90, vec3(0, 0, 1));
var tMatrix = mat4.translate(mat4(), vec3(200, 0, 0));
var resultMatrix = mat4.multiply(rMatrix, tMatrix);
target.style.transform = mat4.toCSSMatrixString(resultMatrix);
Demo
ご静聴ありがとうございました

More Related Content

Viewers also liked

FiltersでGLSLを楽しく学んじゃおう!
FiltersでGLSLを楽しく学んじゃおう!FiltersでGLSLを楽しく学んじゃおう!
FiltersでGLSLを楽しく学んじゃおう!Kazuya Hiruma
 
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発Kazuya Hiruma
 
【マインドセット4】
【マインドセット4】【マインドセット4】
【マインドセット4】Akkun Akkun
 
WebVRことはじめ
WebVRことはじめWebVRことはじめ
WebVRことはじめKazuya Hiruma
 
WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方Kazuya Hiruma
 
物理エンジンを使って 3Dに息を吹き込む
物理エンジンを使って 3Dに息を吹き込む物理エンジンを使って 3Dに息を吹き込む
物理エンジンを使って 3Dに息を吹き込むKazuya Hiruma
 
PDCAで仕事を進める
PDCAで仕事を進めるPDCAで仕事を進める
PDCAで仕事を進めるjunji44
 
WebVR Tokyo Meetup vol2
WebVR Tokyo Meetup vol2WebVR Tokyo Meetup vol2
WebVR Tokyo Meetup vol2Kazuya Hiruma
 
Unity入門ハンズオン
Unity入門ハンズオンUnity入門ハンズオン
Unity入門ハンズオンKazuya Hiruma
 
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料Kazuya Hiruma
 
HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!Kazuya Hiruma
 
WebVRデモ JSオジサン #5
WebVRデモ JSオジサン #5WebVRデモ JSオジサン #5
WebVRデモ JSオジサン #5Kazuya Hiruma
 
いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん
������� ������������ ���������いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん������� ������������ ���������いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん
いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさんKazuya Hiruma
 
WebGLことはじめ
WebGLことはじめWebGLことはじめ
WebGLことはじめKazuya Hiruma
 
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料WebGL入門ハンズオン資料
WebGL入門ハンズオン資料Kazuya Hiruma
 
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方株式会社PLAN-B(PLAN-B Co.,Ltd)
 
Swift (with SceneKit) で簡単な3Dゲームを作ってみた
Swift (with SceneKit) で簡単な3Dゲームを作ってみたSwift (with SceneKit) で簡単な3Dゲームを作ってみた
Swift (with SceneKit) で簡単な3Dゲームを作ってみたKazuya Hiruma
 

Viewers also liked (20)

FiltersでGLSLを楽しく学んじゃおう!
FiltersでGLSLを楽しく学んじゃおう!FiltersでGLSLを楽しく学んじゃおう!
FiltersでGLSLを楽しく学んじゃおう!
 
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発
ドラッグ & ドロップだけで動かせる! 簡単Leapmotion開発
 
【マインドセット4】
【マインドセット4】【マインドセット4】
【マインドセット4】
 
WebVRことはじめ
WebVRことはじめWebVRことはじめ
WebVRことはじめ
 
Kddi mugen lab
Kddi mugen labKddi mugen lab
Kddi mugen lab
 
【Web essense】KPIはじめました
【Web essense】KPIはじめました【Web essense】KPIはじめました
【Web essense】KPIはじめました
 
WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方WebVR 酔いづらいコンテンツの作り方
WebVR 酔いづらいコンテンツの作り方
 
物理エンジンを使って 3Dに息を吹き込む
物理エンジンを使って 3Dに息を吹き込む物理エンジンを使って 3Dに息を吹き込む
物理エンジンを使って 3Dに息を吹き込む
 
PDCAで仕事を進める
PDCAで仕事を進めるPDCAで仕事を進める
PDCAで仕事を進める
 
WebVR Tokyo Meetup vol2
WebVR Tokyo Meetup vol2WebVR Tokyo Meetup vol2
WebVR Tokyo Meetup vol2
 
Unity入門ハンズオン
Unity入門ハンズオンUnity入門ハンズオン
Unity入門ハンズオン
 
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
 
集まっTail #5 LT
集まっTail #5 LT集まっTail #5 LT
集まっTail #5 LT
 
HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!
 
WebVRデモ JSオジサン #5
WebVRデモ JSオジサン #5WebVRデモ JSオジサン #5
WebVRデモ JSオジサン #5
 
いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん
������� ������������ ���������いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん������� ������������ ���������いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん
いよいよ本番(斜め上)活用例から見るWebVRの使いドコロ @JSおじさん
 
WebGLことはじめ
WebGLことはじめWebGLことはじめ
WebGLことはじめ
 
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
 
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方
【宣伝会議2015】コンテンツマーケティングのKPI設計とPDCAの回し方
 
Swift (with SceneKit) で簡単な3Dゲームを作ってみた
Swift (with SceneKit) で簡単な3Dゲームを作ってみたSwift (with SceneKit) で簡単な3Dゲームを作ってみた
Swift (with SceneKit) で簡単な3Dゲームを作ってみた
 

More from Kazuya Hiruma

MESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なことMESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なことKazuya Hiruma
 
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR HubPORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR HubKazuya Hiruma
 
ARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作りARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作りKazuya Hiruma
 
AWE Nite ARKit3 Hackathon
AWE Nite ARKit3 HackathonAWE Nite ARKit3 Hackathon
AWE Nite ARKit3 HackathonKazuya Hiruma
 
レイマーチ入門勉強会資料
レイマーチ入門勉強会資料レイマーチ入門勉強会資料
レイマーチ入門勉強会資料Kazuya Hiruma
 
MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2Kazuya Hiruma
 
みんなレイ飛ばしてる?
みんなレイ飛ばしてる?みんなレイ飛ばしてる?
みんなレイ飛ばしてる?Kazuya Hiruma
 
VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会Kazuya Hiruma
 
ElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門MeetupElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門MeetupKazuya Hiruma
 
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜Kazuya Hiruma
 
UnityでARKitハンズオン
UnityでARKitハンズオンUnityでARKitハンズオン
UnityでARKitハンズオンKazuya Hiruma
 
すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜Kazuya Hiruma
 
VRで酔わないコンテンツ作り
VRで酔わないコンテンツ作りVRで酔わないコンテンツ作り
VRで酔わないコンテンツ作りKazuya Hiruma
 
WebVRコンテンツ制作入門
WebVRコンテンツ制作入門WebVRコンテンツ制作入門
WebVRコンテンツ制作入門Kazuya Hiruma
 
WebVRってこんなことできるよ!
WebVRってこんなことできるよ!WebVRってこんなことできるよ!
WebVRってこんなことできるよ!Kazuya Hiruma
 
WebGL入門LT大会資料
WebGL入門LT大会資料WebGL入門LT大会資料
WebGL入門LT大会資料Kazuya Hiruma
 

More from Kazuya Hiruma (18)

MESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なことMESONプロジェクトから学ぶこれからのAR開発に必要なこと
MESONプロジェクトから学ぶこれからのAR開発に必要なこと
 
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR HubPORTAL with Nreal in CES 2020 開発の学び @XR Hub
PORTAL with Nreal in CES 2020 開発の学び @XR Hub
 
ARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作りARグラスで 魅力的な絵作り
ARグラスで 魅力的な絵作り
 
AWE Nite ARKit3 Hackathon
AWE Nite ARKit3 HackathonAWE Nite ARKit3 Hackathon
AWE Nite ARKit3 Hackathon
 
レイマーチ入門勉強会資料
レイマーチ入門勉強会資料レイマーチ入門勉強会資料
レイマーチ入門勉強会資料
 
MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2MESONで手がけたARアプリ AR Developer Meetup #2
MESONで手がけたARアプリ AR Developer Meetup #2
 
みんなレイ飛ばしてる?
みんなレイ飛ばしてる?みんなレイ飛ばしてる?
みんなレイ飛ばしてる?
 
VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会VRゲーム制作楽しいよ! @UnityおとなのLT大会
VRゲーム制作楽しいよ! @UnityおとなのLT大会
 
ElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門MeetupElminaAR - Unity x ARKit 入門Meetup
ElminaAR - Unity x ARKit 入門Meetup
 
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
 
UnityでARKitハンズオン
UnityでARKitハンズオンUnityでARKitハンズオン
UnityでARKitハンズオン
 
すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜すぐそこにある未来〜AR〜
すぐそこにある未来〜AR〜
 
VRで酔わないコンテンツ作り
VRで酔わないコンテンツ作りVRで酔わないコンテンツ作り
VRで酔わないコンテンツ作り
 
WebVRコンテンツ制作入門
WebVRコンテンツ制作入門WebVRコンテンツ制作入門
WebVRコンテンツ制作入門
 
WebVRってこんなことできるよ!
WebVRってこんなことできるよ!WebVRってこんなことできるよ!
WebVRってこんなことできるよ!
 
そしてWebVR
そしてWebVRそしてWebVR
そしてWebVR
 
WebGL入門LT大会資料
WebGL入門LT大会資料WebGL入門LT大会資料
WebGL入門LT大会資料
 
WebVRとUI @DIST10
WebVRとUI @DIST10WebVRとUI @DIST10
WebVRとUI @DIST10
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

使ってますか? CSS matrix3d