任意の図形でRegionやGraphicsPathを作るには? への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 ねこまっしぐら  (社会人) 投稿日時 2017/11/29 18:13:30
結局Add~する時にintegerだったのをsingleにしたら隙間が無くなったようなので取りあえず解決にします
(ずれるのもそのマイナス分よけいに拡大して何とかしましたし)
投稿者 ねこまっしぐら  (社会人) 投稿日時 2017/11/28 12:37:40
試行錯誤してたらさらに分からないことが…
位置がずれるので色々試していたら
GraphicsPath.AddEllipse(New Rectangle(0,0,100,100))だと
GraphicsPath.GetBoundsは0,0,100,100なのに
GraphicsPath.AddPie(New Rectangle(0,0,100,100),135,180)だと
GraphicsPath.GetBoundsは-4.881555,-4.88157,90.23682,90.23689を返してきます
(期待しているのは0,0,85.35534,85.35534)
このマイナスはどこから…
投稿者 ねこまっしぐら  (社会人) 投稿日時 2017/11/27 12:57:48
魔界の仮面弁士様、いつもありがとうございます

実はそもそも私のポカで、なぜだかGraphicsPathが変形出来ないと思いこんでいたのが原因でした
Transformで拡大縮小も回転も出来たのが分かって恥ずかしい限りです(^^;

ただピクセルをRegionに出来るってのは何かに使えるかもしれませんね

と、そこまでは良かったのだけど、弧や直線寄せ集めて作ったGraphicsPathをDrawPathすると線の繋ぎ目を結ぶ線が勝手に入って困ったことに…
輪郭線だけが欲しいのに…
(そしてそのGraphicsPathでClipした画像も歯抜けに…)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/11/26 21:33:52
自由曲線なら AddClosedCurve を使う手も一応あります。
https://dobon.net/vb/dotnet/form/formregion.html#section5

ただ自分の場合は、適当なポリゴンに分解して
それを Union で繋ぎあわせることで生成していますね。

下記に同種のサンプルがあります。
前者は VB による .NET 実装、後者は C++ による Win32 実装。
http://smdn.jp/programming/tips/create_region_from_bitmap/
http://marupeke296.com/TIPS_No11_AutoRegion.html
投稿者 ねこまっしぐら  (社会人) 投稿日時 2017/11/26 11:54:17
VB.net2005 Windows7 WinFormsです
画像をクリップしたいのですが、矩形なら回転してもポリゴンでRegionなりGraphicsPathなりは作れますが、回転した楕円とか自由曲線図形の場合どのようにすればいいのでしょう