CGPath

2011. 06. 25
●概要

グラフィックスパスは、線または形状といった一連の数学的な記述法です。

CGPathRefは、不変グラフィックスパスを表す不透過型を定義します。

CGMutablePathRefは、可変グラフィックスパスを表す不透過型を定義します。

CGPathRefもCGMutablePathRefのどちらもパスを描画する関数を定義します。

グラフィックスコンテキストにQuartzのお明日を描画するには、CGContextAddPathを呼び出すことによってグラフィックスコンテキストにパスを追加し、それからコンテキストの描画関数の一つを呼び出します。(CGContextを参照)

グラフィックスパス内の各図は、直線とベジェ曲線の組み合わせで構成され、サブパスと呼ばれています。

サブパスは、サブパスの構成を単一の手順で表すパス要素の順序付きセットを持っています。
(例えば、矩形のある角から別の角への線分がパス要素です)

全てのサブパスは始点を含んでおり、サブパス内の最初の点になります。

パスはまた現在のポイントも保持しており、最後のサブパス内の最後の点になります。

可変パスに新しいサブパスを追加するには、アプリケーションは通常、CGPathMoveToPointを呼び出してサブパスの始点と最初の現在のポイントを設定し、続いてサブパスに線分や曲線を追加するCGPathAdd*シリーズの呼び出しを行います。

線分または曲線がサブパスに追加されると、サブパスの現在のポイントが最後に追加された線分または曲線の終点に更新されます。

サブパスの直線と曲線は常に接続されていますが、線の閉集合を形成する必要はありません。

アプリケーションはCGPathCloseSubpathを呼び出すことによって、サブパスを明示的に閉じます。

サブパスを閉じると、サブパスの始点を終端とさせる線分を追加し、そして線を描画する方法も変更されます。
(詳細は『Quartz 2D Programming Guide』の『Paths』を参照してください)



●タスク別の関数

●パスの生成と管理


CGPathCreateMutable
CGPathCreateMutableCopy
CGPathCreateCopy
CGPathRelease
CGPathRetain

●Quartzのパスの変更


CGPathAddArc
CGPathAddArcToPoint
CGPathAddCurveToPoint
CGPathAddLines
CGPathAddLineToPoint
CGPathAddPath
CGPathAddQuadCurveToPoint
CGPathAddRect
CGPathAddRects
CGPathApply
CGPathMoveToPoint
CGPathCloseSubpath
CGPathAddEllipseInRect

●Quartzのパスに関する情報の取得


CGPathEqualToPath
CGPathGetBoundingBox
CGPathGetPathBoundingBox
CGPathGetCurrentPoint
CGPathGetTypeID
CGPathIsEmpty
CGPathIsRect
CGPathContainsPoint



●関数



●コールバック



●データ型



●定数

CGPathDrawingMode

enum CGPathDrawingMode {
    kCGPathFill,
    kCGPathEOFill,
    kCGPathStroke,
    kCGPathFillStroke,
    kCGPathEOFillStroke
};

typedef enum CGPathDrawingMode CGPathDrawingMode;

関数CGContextDrawPathにパスの描画モードの定数を渡して、どのようにQuartzがグラフィックスコンテキストの現在のパスを描画するかを指定します。

kCGPathFill
非ゼロワインディング規則を使用して、パス内に含まれている領域を描画します。

kCGPathEOFill
偶奇規則を使用してパス内の領域を描画します。

kCGPathStroke
パスに沿って線を描画します。

kCGPathFillStroke
First fill and then stroke the path, using the nonzero winding number rule.
非ゼロワインディング規則を使用して、塗りつぶした後にパスの線を描きます。

kCGPathEOFillStroke
偶奇規則を使用して、塗りつぶした後にパスの線を描きます。

※ 非ゼロワインディング規則や偶奇規則についての詳細は『Quartz 2D Programming Guide/Paths/Painting a Path/Filling a Path』や『Adobe/ActionScript 3.0 開発ガイド/表示/描画 API の使用/描画 API の高度な使用/ワインディング規則の定義』などを参照してください。



参考文献

CGPath Reference

猫にはわからないプログラミング/不透過型(opaque data type)

Quartz 2D Programming Guide/Paths/Painting a Path/Filling a Path

Adobe/ActionScript 3.0 開発ガイド/表示/描画 API の使用/描画 API の高度な使用/ワインディング規則の定義






Bose QuietComfort 20
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
08 | 2017/09 | 10
Sun Mon Tue Wed Thu Fri Sat
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR