DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Setclip領域をFormいっぱいにしたい

環境/言語:[C#]
分類:[.NET]

いつもお世話になっています。

またまた疑問に思うことがあり、お教え頂きたく書き込み致します。
よろしくお願いします。


プログラムの練習に簡単なCADを作りたいと思っています。
現在、作図した長方形や円等を、キーボードやマウスを操作して、移動や拡大縮小する機能部を考えています。

当初、TranslateTransformで、原点を動かして図形を動かしているように見せ、ScaleTransformで拡大縮小しようとしていました。
 ですが、ScaleTransformは原点を中心に図形を拡大縮小するため、原点を動かしたあとに拡大縮小すると表示領域をその分移動させるのが大変ということがわかりました。

■そこで、下記のようにsetclipで区切った領域を、pictureBoxいっぱいに表示できないか?と考えています。
何かいい方法がないでしょうか? 

Graphics g=e.Graphics;
RectangleF clipRect = new RectangleF(0F, 0F, 100.0F, 100.0F);
g.SetClip(clipRect);
Pen pen1=new Pen(Color.Red, 0);
Pen pen2=new Pen(Color.Blue, 0);
g.DrawRectangle(pen1, -50, -50, 100, 100);
g.DrawRectangle(pen2, 50, 50, 150, 150);

clip領域の移動はTraslateClipを使うつもりです。よろしくお願い致します。
こういうことはできないのでしょうか・・・?(悩
#申し訳ありませんが、無意味にスレッドを上げるのはやめてください。そうしたいのを我慢してマナーを守っていただいている多くの投稿者のことを考え、ご理解ください。

ご質問の意味をよく理解していませんが(そもそも「いい方法」の意味が分かりません)、ワールド変換にせよ、計算するにせよ、それ程大変でしょうか?ワールド変換はその順番が重要です。

DOBON.NET .NET Tips - ワールド変換により画像を平行移動、拡大、縮小、回転して表示する
http://dobon.net/vb/dotnet/graphics/transform.html

DOBON.NET | プログラミング道 | プログラミング掲示板