-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcookpad.ini
More file actions
7 lines (4 loc) · 2.19 KB
/
cookpad.ini
File metadata and controls
7 lines (4 loc) · 2.19 KB
1
2
3
4
5
6
7
ルービックキューブを学ぼうとする人々をターゲットにしました。私は子供の頃、ルービックキューブに興味があり解き方を覚えました。覚える中で、紙の解説だけを見ながら覚えるのは時間が掛かり、難しいと思いました。 そのため立体的な3次元のアニメーションの解決策を通じてルービックキューブを初めて学ぼうとする人々がもっと早く分かりやすく理解できればと思ったのが開発の動機です。 この開発を実装するためのツールはThree.js(WebGlのライブラリ)を選択し、それに従って言語はJavaScriptと定めました。 設計では、基本軸を固定し3*3*3ルビックキューブの27個のピースを個別の立方体と扱って回転状態と位置情報を保存した行列を保存しておき、ルービックキューブの状態を把握することにしました。 ルービックキューブ全体の回転、各面の回転等の動作については、それぞれのピースの位置情報、回転情報を1fps(1/60秒に設定)毎に回転行列の乗算演算で更新する関数を作り、これを組み合わせて動きを実装しました。 解き方はルービックキューブの初級解法を参考に実装し、カメラの回転、照明はThree.jsライブラリの機能を使用しました。
最終的な目標は、OpenCv とAndroid、ios 等を組み合わせて携帯のカメラでルービックキューブをスキャンし、ユーザに解決策を示すことであったが、キューブシミュレーション、解法の実装が終わった後、他の分野に興味が生じ、中止している状態です。
序盤のコードを作成する段階で基準となる固定された3次元座標軸を設定しなかったため、コードの大部分を再作成し、序盤の設計の重要さを大きく感じました。 時間がかかっても,最初のしっかりした設計が作業をより速くし,理解しやすいコードになると思いました。
개발하면서 느낀점, (개인 플젝, 타켓, 구현한 부분, 타켓의 니즈, 개발하며 느낀점);