読者です 読者をやめる 読者になる 読者になる

asaのブログ

プログラミングの勉強まとめ

ペイントソフトの開発フローまとめ

 現在のところUIを大枠作って機能の実装に入ろうとしています。しかしながら何を作ってよいのやら当たりがつかなかったので、調べたり考えたりして開発フローをまとめてみました。

 

 最初に何を実装するのか確認

 先週あたりペイントソフトの機能を洗い出していました。

 ペイントソフトの機能の書き出し - asaのブログ

そこで上げられていた機能として

  1. 描く
  2. 保存する
  3. 保存したデータを読み出す

はmustでした。それに付随していろいろな機能がくっついているのでした。そこでstackoverfllowやGithubなどを見たところ、ある程度のところまではJavaFXでやっている人がいるようです。しかしそこから先は、やはり画像処理に長けたOpenGLで実践や知識がまとまっている印象がありました。

 

 なので、pixiv Insideで佐藤さん@ゆで (@SuperSatoSan) | Twitterさんがお絵かきツールの作り方をスライドで流していましたが、ええ、その通りで時代はOpenGLで間違いありませんでした。

 

 まとめると、UIはJavaFXでいいけど機能面はOpenGLで作れということになります。ちなみにスライドはここから↓

inside.pixiv.blog

 

 ブランチ

 さてやることがたくさんありますし、覚えることもたくさんあります。加えてやることは単純作業ではなくて結構重ための仕事です。

 そういう仕事は平行してやると結局完成しないことが確定的なので、これやるって決めたらそれに集中するスタイルで細かく処理していきます。

 

 そこで、ペイントツールのプロジェクトをブランチを運用して切り分けていきます。絵でいったら中央線を引くくらいの作業として

  1. UI
  2. 機能

に分けます。しかしさらに枝葉末節伸びていきます。

 

 UIは今のところ機能をどう実装できるか分からないと完成させられません。なのでブランチをCSSの適用とだけ伸ばしおきます。

 あと機能面は結局OpenGLを使わないことには今のところ手のだしようもありません。そしてOpenGLほとんど知りません・・・。というわけでまずはOpenGLの基本的なところを学習してそれからです。JavaOpenGLを使うのにはJOGLがありますのでそこから攻めていきます。

 

 学習方法

 リンクを詰め込んでおきます。

 ・http://asa-no-blog.hatenablog.com/?page=1494428663Inkscapeは役に立つ)

 ・java - Paintbrush stroke in JavaFX - Stack OverflowJavaFXでブラシ作ってます)

 ・JavaFXの練習5:Drag&DropでNodeを移動する - プログラムdeタマゴ(Nodeの移動

  について書いてあります。ありがたい)

 ・JavaFX 画像表示・画像処理(ピクセル操作)|軽LabJavaFXで画像処理)

 ・ava - How to use OpenGL in JavaFX? - Stack Overflow(これで今回の方針がだいた

  い決まった)

 ・OpenGL ES入門 その1 -描画の仕組みとバッファ- - A Day In The Life

 ・brush - Photoshop-style brushes in OpenGL - Stack Overflow

 ・http://www.cs.brandeis.edu/~cs155/chinese_brush_painting.pdf

 ・JavaFX アプリケーションを素敵に着飾ってみる - Qiita