CoreGraphics 線の太さ・色・形状を変える

こんにちは、@yoheiMuneです。
今日は、CoreGraphicsで線を引く際に、色・太さ・形状を設定する方法をブログに記載したいと思います。


CoreGraphicsで線の色を変える

線の色を変えるには、以下のようなコードを記載します。

UIColor *color = [UIColor blueColor];
CGContextSetStrokeColorWithColor(context, [color CGColor]);

または、RGBαを指定する事でも、色を指定することが出来ます。

CGContextSetRGBStrokeColor(context, 0.0, 0.0, 1.0, 1.0);

CGContextSetRGBStrokeColorの引数に設定する内容は以下となります。

引数 内容
context CoreGraphicsのcontext。作成方法は、こちらを参照ください
red 赤色指定。0.0〜1.0
green 青色指定。0.0〜1.0
blue 青色指定。0.0〜1.0
alpha 透明度指定。0.0〜1.0。1.0が不透明

参照:http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html%23//apple_ref/c/func/CGContextSetRGBStrokeColor
上記のコードはどちらも線を青色に設定するようにしています。Viewに表現した色を指定するにはUIColorを利用すると便利かもしれません。


線の太さを指定する

線の太さを指定するには、以下のようなコードを記載します。

CGContextSetLineWidth(context, 5.0);

うん、これは簡単。第2引数に線の太さを指定すればOKです。初期値は1。これだとちょっと線は細いので、太めに指定してあげるとユーザーには優しいかも。
参照:http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html%23//apple_ref/c/func/CGContextSetLineWidth

線の形状を指定

線の曲がり角でどのような形状にするかを指定出来ます。

CGContextSetLineCap(context, kCGLineCapRound);

第2引数のところに、線の形状を指定します。ここでは曲がり角は丸っとさせています。第2匹数に指定出来る値は以下があるようです。

kCGLineCapButt 角を角っとさせる。初期値。
kCGLineCapRound 角を丸っとさせる
kCGLineCapSquare これは先端を角っと。kCGLineCapButtとの違いは実装してみて試してみて下さい。

参照:http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html%23//apple_ref/c/func/CGContextSetLineCap


最後に

CoreGraphicsは最初は、なんて難しいんだこんちくしょー(; ̄ェ ̄)、と思っていましたが、だんだんと自由に使えるようになると面白いですね。次もCoreGraphicsの何かを身につけよう♪(´ε` )



以下関連するページです。ご参考になれば幸いです。