ペイントソフトってどうやって作るんだぜ(^~^)?

あびょー(^~^) 公開下書き

ペイントソフトってどうやって作るんだぜ(^~^)?

20210124shogi2a2b1.png
「 ペイントソフトって どうやって作るんだぜ?」

kifuwarabe-futsu.png
「 作らない方がいいのでは」

ohkina-hiyoko-futsu.png
「 コンピューター囲碁プログラムが ペイントソフトみたいなもんじゃないの?」

ramen-tabero-futsu2.png
「 ペンの太さ を作るときに困るんだぜ」

20210622blog9.png

ramen-tabero-futsu2.png
「 👆 どっか 中途半端なところを クリックしたとしようぜ?」

20210622blog9a1.png

ramen-tabero-futsu2.png
「 👆 ペンの太さの半径が3、直径なら6としようぜ?」

20210622blog9a2.png

ramen-tabero-futsu2.png
「 👆 すると 円 はこんな感じかもしれないが」

20210622blog9a3.png

ramen-tabero-futsu2.png
「 👆 こんな感じに 塗るとこ、塗らないとこを判定するには どうすんだぜ?」

📖 C言語で円と楕円を描画する

ohkina-hiyoko-futsu.png
「 👆 この記事が なんか 役に立たないの?」

(x - x1) * (x - x1) + (y - y1) * (y - y1) = radius * radius

ramen-tabero-futsu2.png
「 👆 円の方程式とか知らんなあ。 ピタゴラスの定理に似てるけど、調べてみるか」

ramen-tabero-futsu2.png
「 円周の位置を表しているのか」

ohkina-hiyoko-futsu.png
「 中心からの距離が 半径以内なら 円上だ、という判定なんて そのまんまじゃない?」

ramen-tabero-futsu2.png
「 それでやってみるかだぜ」

fill_square()

20210622blog9a4.png

kifuwarabe-futsu.png
「 👆 まず箱を塗りつぶすような 簡単なやつにしては?」

ramen-tabero-futsu2.png
「 それもそうかだぜ」

20210622blog10.png

ramen-tabero-futsu2.png
「 👆 直径を 2 にした場合、ほぼ まるで 直径3のように塗ってしまわないかだぜ?」

20210622blog10a1.png

ohkina-hiyoko-futsu.png
「 👆 こんな風に 融通利かせてくれたって いいんじゃない?」

ramen-tabero-futsu2.png
「 四捨五入かだぜ」

20210622blog11.png

ramen-tabero-futsu2.png
「 👆 いい感じだぜ」

fill_circle()

20210622blog12.png

ramen-tabero-futsu2.png
「 👆 円の場合も 位置調整した方がいいのかだぜ?」

20210622blog12a1.png

kifuwarabe-futsu.png
「 👆 中心位置を調整する必要がありそうだな」

20210622blog12a2.png

kifuwarabe-futsu.png
「 👆 このサイズだと 正方形と 変わんないだろうけど」

20210622blog13.png

ramen-tabero-futsu2.png
「 👆 1つ1つのマスが 半径の内側にあるかどうかって、どうやるんだぜ?」

20210622blog13a1.png

kifuwarabe-futsu.png
「 👆 各マスの 中心から、 水色の円の中心までの距離を調べればいいんじゃないか?」

20210622blog15.png

kifuwarabe-futsu.png
「 👆 マスの 中心って ここな」

20210622blog13a2.png

kifuwarabe-futsu.png
「 👆 ピタゴラスの定理の説明は省くが、斜辺の長さは求まるぜ」

ramen-tabero-futsu2.png
「 やってみるかだぜ」

20210622blog14.png

ramen-tabero-futsu2.png
「 👆 円ブラシが 餅みたいになってしまった」

ohkina-hiyoko-futsu.png
「 ソースを見ると、ブラシの左上座標を見てるわね。真ん中にしなさいよ」

20210622blog16.png

ramen-tabero-futsu2.png
「 👆 これはひどいピタゴラスの定理」

20210622blog14a1.png

ramen-tabero-futsu2.png
「 👆 手調整も入れて マシなところで確定」

20210622blog17.png

ramen-tabero-futsu2.png
「 👆 ドット塗るたびに保存してるので 重すぎるぜ」

kifuwarabe-futsu.png
「 Piston でタイマー使えないのかだぜ?」

image.png

ramen-tabero-futsu2.png
「 👆 動作が重い」

kifuwarabe-futsu.png
「 オートセーブがダメなのでは」

ramen-tabero-futsu2.png
「 ペンのサイズを変えるボタンぐらい欲しくなってくるな」

ohkina-hiyoko-futsu.png
「 やっぱり」

📖 RustでGUI 〜conrod編〜

ohkina-hiyoko-futsu.png
「 👆 ボタンとか、スライダーボックスのような Widget はあるらしいんだけど」

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事