ややプログラム紀行

博士2年のプログラムに関する日記

画像編集① 直線

そろそろペイントソフトのプログラムをまじめに考えないとなーと思って

今日2時間くらい前から格闘してました

で、ようやく決着がついたので、まとめておきます

dot.jpg

>突然の画像<

直線を引くって要するに、その直線が通っているマスを塗れば良い訳です

この画像、何が言いたいかって、紫の部分と重なってるマスを塗るってことだよー

って意味です

縦線と斜め線の交点に注目して、マスを塗る訳ですが、具体的なプログラムはのせないっす

なにせ面倒なので

順序だけ書くと

①forループを使って立て列に分割する

②紫の部分の範囲を求める

③forループなどを使って重なってるマスを塗る

ってわけです

注意すべきは直線の端をマスの真ん中にして計算するということです

そうしないとずれるので

ただ、これを実行すると、少しですが、曲線を描こうとするとかくつきます

処理速度の問題で、ほんとに少しなんですけど、エミュレーターで実験してるので

実機だともっと書くつくかもしれません

直線の引き方はこれより良いのが絶対にあるので探してきますノシ

あと、Core Foundation系はARCで解放されないから自力でCFReleaseしなきゃならないらしい

Core GraphicsはCFReleaseみたくCGReleaseがないので困りましたが、

CFReleaseで解放できちゃいました

Core GraphicsってCore Foundation系なのかな?