2012年11月30日金曜日

CGContextSetLineWidth()とCGContextSetLineDash()の関係

X-BASIC for iOS開発の過程で、CGContextSetLineWidth()とCGContextSetLineDash()の関係がどうにもわからないので調べてみた。線幅を1より大きくした時のDashの描かれ方が意図したとおりにならない。

dash=10,20の設定でlineWidth1〜10まで変化させた時、下図のようになった。


width=1の時は設定通りだが、widthが増えるとそうではなくなる。
widthは縦幅だけでなくON部分のみ横幅まで増やしてしまう。
およそではあるが、widthに+1付きon区間が2増え、OFF区間が2減る。

最初iOSのバグかと思ったほど。
意図してこの2つを使いこなせる人間はいるのだろうか?

インターネットで色々調べてもLineWidth=1の時の描き方の例はあってもそれ以上の時は見つけられなかったので、ここに。

ちなみに、X-BASIC for iOSでは意図したとおりに描かれるようパラメーターを自動調整している。

0 件のコメント:

コメントを投稿