質問: 多角形の座標を定義 rect 構造体は四角形の左上隅と右下隅の座標を定義するものではあると思いますが 多角形の座標を定義する構造体はないのでしょうか?
回答: > rect構造体は四角形の左上隅と右下隅の座標を定義するものではあると思いますが これは、正しいとも間違いとも言えません。 c標準にはrect構造体なるものはありません。 あなたの言う「rect構造体」は何かのライブラリやapi用に追加されたもので、その定義として「四角形の左上隅と右下隅の座標」としているだけです。 例えば、↓このrect構造体はwindowsapi用に用意されたものです。 macやlinuxのcではそのままでは使えません。 windowsでも、#includeで適切なヘッダを読み込まなければ使えません。 http://msdn.microsoft.com/ja-jp/library/a5ch4fda%28v=vs.80%29.aspx 他のライブラリで別の定義をしても構いません。 対応した関数等をちゃんと用意できれば、「四角形の右上隅と左下隅の座標」とか「四角形の左上隅座標と大きさ」とかで「rect構造体」を作っても構わないわけです。 > 多角形の座標を定義する構造体はないのでしょうか? これも同様に、c言語にはありません。 そのrectが定義されているライブラリのマニュアル等を調べて、無いのなら「そのライブラリには」存在しないのでしょう。 無いのなら、適当に作ればいいのです。 どう定義するか、は、それをどう使いたいかを考え、都合のいいものにすればいいです。 例えば、上記のmfcを使って、windowsの画面に多角形を書きたい、といった場合は、cdc::polygon で簡単に使えるものがよいと考えられます。 http://msdn.microsoft.com/ja-jp/library/hhkhd4xz%28v=vs.80%29.aspx そうすると、引数にあった型で point構造体の配列と、点の数を記憶できるようなものがよいでしょう。