佐藤さとる

佐藤さとる

梶研 [3次元ベクトルの回転 & ハッカソン]

2023年06月19日

3次元ベクトルの回転 & ハッカソン

出席率

スケジュール

短期的な予定

長期的な予定

進捗報告

3次元ベクトルを回転させる

先週までの問題点

[2, 0, 0] をx軸で90度回転 回転 → [2, 0, 0]

回転できてない?

計算式を(なんとなく)理解してみる

$$

Vec_x^{\prime} =

\begin{bmatrix}

1 & 0 & 0 \\\\

0 & \cos \theta & -\sin \theta \\\\

0 & \sin \theta & \cos \theta \\\\

\end{bmatrix}

\begin{bmatrix}

x \\\\

y \\\\

z \\\\

\end{bmatrix}

$$

x = (vec[0] * 1) + (vec[0] * 0) + (vec[0] * 0)
y = (vec[1] * 0) + (vec[0] * cosθ) + (vec[0] * sinθ)
z = (vec[2] * 0) + (vec[0] * -sinθ) + (vec[0] * cosθ)

xはそのまま y, z は0だから変化しない

=> x軸周りに90度ならばxは変化するわけがない(y, zを0以外に)

x軸正の方からみたベクトル

[2, 2, 1] をx軸周りに90度

赤が元ベクトル

緑が回転後ベクトル

90度回転している

=> 正しく回転させれている

余談

技育キャンプに参加した

制作物

かみあぷり

紙を破ることでPCを操作できるアプリ

画面

スクリーンショット 2023-06-19 20.05.46.png (1.8 MB)

操作方法

付箋をクリックすると内容が変わる

スクリーンショット 2023-06-19 20.08.40.png (1.8 MB)

ログ

紙を破ったと判断されるとログが追加される

スクリーンショット 2023-06-19 20.10.51.png (1.8 MB)

技術スタック

  1. TensorFlow.js で紙を破ったかを判別する.
  2. JS からTauri の shell を呼び出す
  3. shell で AppleScript(osascript) を実行する
  4. osascript の keystroke などで実行

スライド

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQEU5pv5i4ksX2LZ3gmUuoVITFUVBUYFZGllkp5jLK3PuvnbgptUk3fp9n3Q5n9q2y770V_42iAdT-1/embed?start=true&loop=true&delayms=3000" frameborder="0" width="2560" height="1469" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

結果

最優秀賞 をととれた!

LINE_ALBUM_230620.jpg (984.0 kB)

(チーム名かいてくれなかった)

振り返り

良かったこと

悪かったこと

徹夜カラオケ(5時間経過時点)

<video controls width="480" alt="名称未設定.mov (4.4 MB)" src="https://esa-storage-tokyo.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/13979/2023/06/19/148142/a8d3f628-6070-4dae-8584-fac39d660239.mov"></video>