『パスの概要・パスについて』

	※以下は、SDKに基づく資料です。
		MFCで使用する場合は、以下の内容を踏まえた上でMSDNライブラリより、
			・「CDCクラス」の「パス関数」等を参照して下さい。
			

	○「パス」とは、 塗りつぶしたり輪郭を描画する図形です。
	Microsoft(R) Windows(TM) 用のアプリケーションは、 さまざまな方法でパスを利用できます。
	パスは、 描画アプリケーションやペイント アプリケーションで使われます。
	また、 CADアプリケーションは、 パスを使って、 特別なクリッピング リージョンを作成したり、
	不規則な図形の輪郭を描画したり、 その内部を塗りつぶします。
	「不規則な図形」とは、 ベジエ (Bezier) 曲線と直線で構成される図形です
	(「規則的な図形」には、 だ円、 円、 長方形、 多角形があります)。
	次に示すトピックでは、 パスについて説明しています。

	「用語」 
	「パスの輪郭描画と塗りつぶし」
	「パスの座標変換(WinNT専用)」
	「クリップ パス」
	「パスからリージョンへの変換」
	「曲線パス」
	「パスの使用」
	「関数」
	「パス描画の色々な方法」


	○パスは、 デバイス コンテキストに関連付けられているオブジェクトの1つです。
	しかし、 新しいDCの一部になるデフォルト オブジェクト (ペンやブラシ、 フォント) とは異なり、
	デフォルトのパスはありません。
	パスを作成してデバイス コンテキストで選択するには、 まず、 パスを記述する点を定義します。
	点を記述するには、 BeginPath関数を呼び出してから、 適切な描画関数を呼び出して、 最後にEndPath関数を呼び出します。
	この関数の組み合わせ (BeginPath、 描画関数、 EndPath) によって、 「パス ブラケット」が構成されます。

	AngleArc		LineTo		Polyline
	Arc		MoveToEx		PolylineTo
	ArcTo		Pie		PolyPolygon
	Chord		PolyBezier		PolyPolyline
	CloseFigure	PolyBezierTo	Rectangle
	Ellipse		PolyDraw		RoundRect
	ExtTextOut	Polygon		TextOut

	Windows 95 でサポートされている関数:
		CloseFigure
		ExtTextOut
		LineTo
		MoveToEx
		PolyBezier
		PolyBezierTo
		Polygon
		Polyline
		PolylineTo
		PolyPolygon
		PolyPolyline
		TextOut
	Windows 95 でサポートされていない関数:
		AngleArc
		ArcTo
		PolyDraw
		Arc
		Chord
		Ellipse
		Pie
		Rectangle
		RoundRect


	○アプリケーションがEndPath関数を呼び出すと、 Windowsは、 対応するパスを指定されたDCで選択します
	(DCで別のパスがすでに選択されていれば、 Windowsはそのパスを保存せずに削除します)。

	○WindowsがパスをDCで選択したら、 アプリケーションは、 次に示す用途にパスを利用できます。
	・(現在のペンによる) パスの輪郭の描画
	・(現在のブラシによる) パスの内部のペイント
	・パスの輪郭の描画と内部の塗りつぶし
	・パスの修正 (曲線から直線の集合への変換)
	・パスからクリップ パスへの変換
	・パスからリージョンへの変換
	・パスの各曲線を一連の線分に変換することによるパスの平滑化
	・パスを構成する直線や曲線の座標の取得


	○以下にパスブラケットデータの概要を記す。
	・パスに使用されるデータとして、2つのデータを持つ

	LPPOINT(配列ポインタ)		LPBYTE(バイト型のポインタ)
	「点の座標」			「点の状態」
	lpPoints[0] = (x, y)		―	lpTypes = "PT_MOVETO"
	lpPoints[1] = (x, y)		―	lpTypes = "PT_LINETO"
	lpPoints[2] = (x, y)		―	lpTypes = "PT_BEZIERTO"	ベジェデータは
	lpPoints[3] = (x, y)		―	lpTypes = "PT_BEZIERTO"	3点の繋がりで
	lpPoints[4] = (x, y)		―	lpTypes = "PT_BEZIERTO"	表される。
		・				・
		・				・
		・				・
	lpPoints[n] = (x, y)		―	lpTypes = "PT_LINETO"

	点の座標数と、点の状態は同数でなければならない。