【C#】フーリエ変換(FFT, DFT)プログラム

以前、Excelのマクロを使って、データ個数に応じて高速フーリエ変換(FFT)と離散フーリエ変換(DFT)の処理を自動で切り替えるマクロを作成したのですが、Excelではデータ数が多い時など、使いにくい場合もあるので、今度は、C#でフーリエ変換部分をライブラリ(*.dll)にし、そのライブラリを使ったプログラムを作成しました。

 

実行ブログラムはこちら FourierTransform.zip

ソースコードは、すべてGitHubで公開しています。

https://github.com/ImagingSolution/FourierCSharp

 

使用方法は以下の通りです。

 

プログラムの実行

zipファイルを解凍すると、

FourierTransform.exe

FourierCSharp.dll

sampledata

となっていますので、FourierTransform.exeをダブルクリックして実行してください。

 

フーリエ変換できるデータフォーマット

データは1行あたりに1つのデータのCSVファイルとなります。

例)

1
1.30939551
1.59096344
1.820538079
1.980767038
2.06331351
2.069803727
2.01139008
1.906994542
1.780482109
1.65716389
1.560123288
1.506883103
1.506883103
1.560123288

入力データに実数部と虚数部が含まれる場合は、1行あたりに

実数部、虚数部

とします。

例)

50, 0
0, -25
0, 0
0, -12.5
0, 0
0, 0

サンプルのデータとして、ZIPファイル内の sampledataフォルダ内にいくつかCSVファイルを入れてありますので、そちらを参考にしてください。

 

データの読込

メニューの File → LoadData をクリックし、CSVファイルを指定することで、データが読み込まれ、フーリエ変換の結果(フーリエ変換後の各周波数の大きさ)が表示されます。

 

フーリエ変換はデータの個数が2のn乗個の場合:FFT、その他の場合:DFTを行います。

 

フーリエ変換、逆フーリエ変換の切替

メニューの Fourier direction → Forward もしくは Backward をクリックすることで、離散フーリエ変換、逆離散フーリエ変換が切り替わります。

 

離散フーリエ変換は

$$F(t)=\sum _{ x=0 }^{ N-1 }{ f(x){ e }^{ -i\frac { 2\pi tx }{ N } } } $$

逆離散フーリエ変換は

$$f(t)=\frac { 1 }{ N } \sum _{ t=0 }^{ N-1 }{ F(t){ e }^{ i\frac { 2\pi xt }{ N } } } $$

で計算しています。

 

窓関数

メニューの Window→ Hamming, Hanning, Blackman のいづれかをクリックすることで、それぞれの窓関数を通します。

↓ 窓関数

 

ただし、窓関数を通すと、元に戻せないため、元に戻す場合は、再度、データ読込を行って下さい。

 

免責事項

ここに公開されているプログラムは自由に使って頂いて構いませんが、バグ等による責任は待てませんので、自己責任において参照下さい。

 

フリーウェアへ戻る

フーリエ変換アプリ

こちらのページでは、フーリエ変換のイメージをビジュアル的に見せるためのプログラムになります。

単に、フーリエ変換をしたい場合は、下記のプログラムをご使用下さい。

【C#】フーリエ変換(FFT, DFT)プログラム

フーリエ変換を教える時に、自分の中では糸(データ)を巻き取るようなイメージ↓(こんな感じ)

 

 

があるのですが、これを分かるように説明するのがなかなか難しく、その様子が分かるように、C#でプログラムを作成してみました。

 

動いている様子はこちら↓

 

実際のプログラムはこちら↓(.NET Framework4.5.2以上で動作すると思います)

FourierTransformAnimation.zip

 

上記ファイルを解凍後、FourierTransformAnimation.exeファイルをダブルクリックすると、プログラムが実行できますが、Windowsの警告画面が表示されるので、「詳細情報」をクリック後、プログラムを実行してください。

また、いくつかサンプルデータを入れてありますので、sampledataフォルダ内のcsvファイルを開いてお試しください。

フーリエ変換で用いている式は、いくつかあろうかと思いますが、下記の式に基づいて処理を行っています。

基本的な機能としては

●CSVファイルによる任意データ入力

●データの離散フーリエ変換

●離散フーリエ変~逆離散フーリエ変換までを動画表示

●窓関数

●離散フーリエ変換の結果をファイル保存

となります。

 

プログラムの説明

データファイルを開くと、離散フーリエ変換を行い、大きさと位相を表示します。

処理のアニメーションの時に用いる複素平面のグラフは、90°反時計周りに回転した状態が初期状態になっています。

離散フーリエ変換の途中途中に出てくる赤い線は、複素平面において、原点からデータの平均の位置までの線で、この線の大きさをMagnitudeグラフへ記載しています。(描画スケールが異なります。)

 

さらにこの線の傾き(12時方向が0°で反時計周りが正)をPhaseグラフへ記載しています。

 

 

逆離散フーリエ変換の時は、各周波数のデータを積算していきますが、前回までのデータの合計を太い青い線で、現在の周波数のデータを赤い線で表示しています。

 

 

使用方法

ファイルを開く

ファイルメニューより、File → Open(*.csv) をクリックし、CSVファイルを選択します。

CSVファイルのフォーマットは1行に1データを縦に記載します。

【例】

1.2
1.107165359
0.914844142
0.80157706
0.872515202
1.061803399
1.193716632
1.145793725
0.962523737
0.814044703
0.838196601
1.012558104
1.175261336

入力データに虚数成分がある場合は、実数と虚数をカンマ(,)でつなげて以下のようにします。

【例】

1,0
0.999390827,0.034899497
0.99756405,0.069756474
0.994521895,0.104528463
0.990268069,0.139173101
0.984807753,0.173648178
0.978147601,0.207911691
0.970295726,0.241921896
0.961261696,0.275637356
0.951056516,0.309016994
0.939692621,0.342020143
0.927183855,0.374606593
0.913545458,0.406736643
0.898794046,0.438371147
0.882947593,0.469471563

データ数がどこまでいけるか?評価していませんが、アニメーション表示をするなら50~100個ぐらいまでが目安です。

アニメーション表示しなければ、そこそこいける?!

 

アニメーションの開始/停止

Youtubeの動画のように、処理の様子を動かすには、ファイルメニューの Animation → Start/Stop をクリックします。スペースキーを押しても同様の動きをします。

 

アニメーションのステップ実行

処理を1つ1つのデータで行う場合は、アニメーションを停止させ、矢印キーの右()を押します。

 

アニメーション速度の調整

アニメーション速度を速くする場合は、矢印キーの上()、遅くする場合は、矢印キーの下()を押します。

 

窓関数処理

基本的に全データを1周期分を想定していますが、この1周期に窓関数(Hamming、Hanning、Blackman)を通します。

ファイルメニューの Window → Hamming、Hanning、Blackman をクリックします。

 

フーリエ変換のイメージ

フーリエ変換では、データを複素平面へ巻き取るようなイメージでになります。

 試しにCosθのデータ全体を1回転で巻き取るようにすると

 

最終的に複素平面の原点から、データが巻き取られた点(複素平面上の点)の平均の位置までの線の大きさが、その周波数の大きさで、線の傾きが位相となります。

 

このデータを巻き取るときの回転の速度が、データ全体を0回転、1回転、2回転・・・で巻き取るようにすると、それぞれの周波数(0,1,2・・・)の大きさと位相が取得できます。

 

試しにCosθのデータ全体を2回転で巻き取るようにしてみると、複素平面上の点の平均は0となります。

もともとのデータにない周波数成分(Cos2θの成分)は、複素平面上で平均を取ると、データが相殺されて0になるのが面白い!

 

逆変換の場合は、取得した各周波数ごとの大きさと位相からコサイン波形を生成し、足し合わせた結果が変換後の実部となります。

ここで、ちょっと違和感があるであろう コサイン波形 と書きましたが、サイン波形を足し合わせた結果は、虚部となります。

 

おそらくこんな書き方をする人はいないのですが、データの個数をN、周波数tの時の大きさをAt、位相をφtとすると、逆変換後の実部(Re)と虚部(Im)は以下のようになります。

 

$$Re(x)\quad =\quad \sum _{ t=0 }^{ N-1 }{ { A }_{ t }Cos(\frac { 2\pi t }{ N } x+{ \varphi }_{ t }) } \\ Im(x)\quad =\quad \sum _{ t=0 }^{ N-1 }{ { A }_{ t }Sin(\frac { 2\pi t }{ N } x+{ \varphi }_{ t }) } $$

 

以下の画像は周波数1の結果を逆変換したものになります。

これだけを見ると、実部のグラフのcosθの振幅は小さくない?!

と思われたかもしれませんが、フーリエ変換を行う元々のデータに虚数部分が含まれない場合、大きさが同じで位相がマイナスの関係になった周波数が存在します。

こんな感じ↓

 

この2つの波形を足し合わせる事で、逆変換では元の波形に戻ります。

この部分の詳細を知りたい場合は、複素共役で調べてもらうと分かるかも?しれません。

 

このフーリエ変換を発明したジョゼフ・フーリエさんは、自分自身をミイラのように包帯でグルグル巻きになるという、ちょっと変わった趣味の持ち主だったそうですが、このグルグル巻きになった時にフーリエ変換が思いついたのではないのかな?(詳細は不明)

 

フーリエ変換へ戻る

 

(Free Soft)Animation GIF Builder

アニメーションGifを作成するソフトは、いくつかフリーでもあるのですが、微妙に自分の欲しい機能と違ったりするので、オレオレ仕様で作ってみました。

デスクトップ画面からのキャプチャや複数画像ファイルからのアニメーションGIFファイルの作成、各コマの画像の削除や順番入れ替えなどの機能を備えています。

 

スクリーンショット

 

上図はエクセルのグラフをキャプチャしている様子ですが、パラメータを変えながらグラフ部分をキャプチャし、動くグラフを作成したのがこちら↓

 

この動くグラフを作りたくて、アニメーションGIFのソフトを作ってみました。

 

ファイルダウンロード

Ver.1.0.1 AnimationGifBuilder101 Gifファイルの上書き保存でファイルサイズが更新されないのを修正
Ver.1.0.0 AnimationGifBuilder100 初版

 

動作環境

Windows PC

.NET Framework 4.5.2

 

使用方法

上記よりファイルをダウンロードし、解凍したファイル

 

  • AnimationGifBuilder.exe
  • AnimationGifBuilder.exe.config
  • ImagingSolution.Imaging.AnimationGif.dll

 

の3つを同一フォルダに入れ、AnimationGifBuilder.exeをダブルクリックして実行して下さい。

※必ず解凍してから使用してください。

 

ウィンドウ名称

 

●イメージリスト

アニメーションGIFにする各コマの画像一覧を表示します。

imageXXの部分を選択すると、プレビューウィンドウにその画像が表示されます。

マウスもしくは矢印キーで画像の選択の選択を行います。

必要の無い画像がある場合は、imageXXの部分を選択し、Deleteキーを押すか、マウスの右ボタンでDeleteを選択します。

各コマの画像はSaveImageを選択すると、Bitmapなどの画像ファイルに保存することもできます。

 

順番の入れ替えもマウスのドラッグ&ドロップ動作で可能です。

 

●キャプチャウィンドウ

画面中の画像キャプチャ範囲を指定します。

ウィンドウをクリックして、選択された状態で、矢印キー(上、下、左、右)を押すと、ウィンドウ全体が移動します。

さらにCtrlキーもしくはShiftキーを押しながら矢印キーを押すと、ウィンドウの幅、高さが変わります。

 

キャプチャウィンドウ内でキャプチャされた各コマの画像はイメージリストに追加されます。

 

ツールバー

■New

イメージリスト内の画像をすべて削除します。

イメージリスト内に何も無い状態の時のみ、キャプチャウィンドウの幅、高さのリサイズが可能となります。

 

■File Open

複数の画像ファイル(*.bmp、*.jpg、*.png)からアニメーションGIFにする画像を登録します。

ボタンを押して表示されたダイアログボックスでは、複数の画像ファイルを選択することが可能です。

※画像サイズはすべて同じサイズのものを使用してください。

 

■Save

イメージリストに登録されている各画像をもとにアニメーションGIFファイルを作成します。

 

■Setting

各種設定を行うウィンドウを表示します。

  • Interval time
    アニメーションGIFの各コマ間の時間をmSec単位で指定します。
    動画で画面をキャプチャするときも、この時間間隔でキャプチャします。
  • Wait time
    繰り返し再生時の次の再生までの待ち時間をmSec単位で指定します。
  • Repeat
    繰り返し再生を行う場合はチェックを入れます。
  • Capture Icon
    マウスアイコンも含めてキャプチャする場合はチェックを入れます。
  • Quality
    画質を設定します。
    初期値で10ですが、値を小さく(バーを左側にする)すると、画質は良くなりますが、保存処理が重くなります。逆に値を大きくすると画質は悪くなりますが、保存処理が軽くなります。
    初期値の10を推奨
  • Resize
    アニメーションGIFに出力するサイズを変更する場合はチェックを入れます。
  • Width
    Resizeにチェックが入っているとき、Widhtの値に合わせて画像の高さも調整します。
  • Height
    Resizeにチェックが入っているとき、Heightの値に合わせて画像の幅も調整します。

 

■Play

アニメーションGIFのプレビューを行います。

 

■Stop

プレビュー再生、もしくは動画録画を停止します。

 

■Rec

キャプチャウィンドウ内の画像を定期的にキャプチャします。

キャプチャ間隔の時間は設定ウィンドウのInteval timeで設定します。

キャプチャの停止は、もう一度Recボタンをクリックするか、Stopボタンをクリックします。

Ctrl+Rキーを押しても操作できます。

 

■Snap

ボタンを押すたびにキャプチャウィンドウ内の画像を1コマ分キャプチャします。

Ctrl+Sキーを押しても操作できます。

 

アプリケーションへ戻る

拡大鏡+輝度値表示+ルーラー機能アプリ MagnifyEx Ver.1.1.0

以前公開していた拡大鏡+輝度値表示機能にルーラーの機能を追加して公開します。

(旧、記事はこちら→拡大鏡+輝度値表示機能アプリ MagnifyEx

 

画像処理をするには、画像の輝度値や輝度の変化、画素間の距離などある程度把握しておきたい事もあり、個人的に使っているツールです。

 

 

【ダウンロード】
2013.9.4 Ver.0.1.1.0  MagnifyExVer0110.zip

 

【動作環境】
Windows PC
.NET Framework2.0

 

【使用方法】
zipファイルを解凍し、exeファイルを実行してください。

拡大画像の補間モード(Nearest NeighborやBicubicなど)と拡大倍率の設定を上部のコンボボックスにて設定できます。

 

Ctrlキーを押しながらマウスを動かすと、Ctrlキーを押している間は測長モードとなります。

最初にCtrlキーを押した位置から、今のマウスポインタまでの距離が表示されます。

この時、マウスのボタンは押さないようにしてください。

(アプリがアクティブな状態でCtrlキーを押してください。)

 

アプリケーションへ戻る

無料の画面キャプチャソフト『Screenpresso』

私がブログやマニュアルを書くときに必需品となっている、フリーの画面キャプチャソフトのScreenpressoを紹介したいと思います。

 

このScreenpressoで何ができるかと言うと、PrintScreenボタンを押すと、画面上のウィンドウ領域を勝手に認識してウィンドウ領域をコピーしてくれるのはもちろんの事、ウィンドウ内のツールバーやボタンなどのコントロール領域も認識してコピーしてくれます。

もちろん、任意領域のコピーも可能です。

さらに、無料版だと録画時間に制限があるものの、画面の操作の様子を動画で保存することも出来ます。

 

また、コピーした画像のエディタ機能もあり、画像サイズのリサイズやぼかしや文字、矢印を入れたり、無料で使える範囲内でも十分に使えます。

 

【画像の編集例】

 

ダウンロード先はこちら↓のページより

http://ja.screenpresso.com/

 

右上のダウンロードボタンをクリックし、ダウンロードはこちらよりダウンロードします。

 

 

ソフトの動作も軽いしホント便利なので、まずは使ってみては如何でしょうか!

おススメです。

 

ちなみに、Windows8.1でも動作しました。

拡大鏡+輝度値表示機能アプリ MagnifyEx

旧ブログ(画像処理ソリューション)でも公開していたのですが、Windowsの拡大鏡アプリに輝度値表示機能を追加したようなアプリを作成たので、暫定公開しておきます。

 

機能的にはアプリを起動し、ポインタ回りの画像を拡大表示し、画像上の十字部分の輝度値グラフ、

ポインタの座標(スクリーン座標)とポインタの位置の輝度値を10進数、16進数で表示しています。

 

 

拡大時の補間方法や拡大率も変更できます。

 

 

【ダウンロード】

2012.11.13 Ver.0.1.0.0 暫定版初版 MagnifyExVer0100.zip

 

【動作環境】

Windows PC

.NET Framework2.0

 

【実行方法】

Windows8環境でzipファイルを解凍し、実行ファイル(MagnifyEx.exe)を実行すると、メッセージが出ますが、詳細情報をクリックしてから、実行をクリックして下さい。

 

 

アプリケーションへ戻る

テキストフォーマット除去ソフト【EraceTextFormat】

Webページなどをコピーして、ワードやメールなどに貼り付けると、文字の大きさやフォーマットも、そのまま反映されるため邪魔な場合があります。

 

そんなテキストのフォーマットを削除するソフトを作ってみました。

 

と言っても、コピーされたテキストを文字列へ入れ、クリップボードへ入れなおすだけの、全部で20行にも満たない簡単なソフトです。

ただ、自分が欲しかったもので...

 

ソフトのダウンロードはこちら

(別途、.NET Framework 2.0が必要です。)

 

使い方は、文字列をコピー(Ctrl+C)し、このソフト(EraceTextFormat.exe)を実行して、ワードなどに貼り付ける(Ctrl+V)と、文字列のフォーマットが削除され、文字列のみを貼り付けてくれます。

CVKaleidoscope

今回はちょっと息抜き。

ネタ的には、よくある話なのですが、OpenCVのアフィン変換のおさらいも含めて、USBカメラを使った万華鏡ソフトを作ってみました。

 

USBカメラから取得した画像から、三角形領域を切り出し、回転、ミラー反転などを行って、万華鏡っぽくしています。

 

ファイルのダウンロードはこちら↓より

CVKaleidoscope230x86.zip

 

【開発環境】

●Visual Studio 2010 C++

●OpenCV2.3 x86 (32bit版)

 

上記の環境があれば、おそらく動作すると思います。

USBカメラは最初に見つけたカメラから640×480サイズで画像を取得しています。

 

【操作方法】

画像上で

Sキーで三角形の回転が開始/停止します。

その他のキーでプログラムが終了します。

 

作ってみると、思いの他、細かいバグにハマって苦労してしまいました...

 

USTREAM台形補正アプリ – UstHomography

最近は各地でコンピュータビジョンやらKinectやらの勉強会が開催され、Ustreamで勉強会の様子が生中継で公開されている事もよくあります。

 

これらの勉強会は非常に参考になる事は多いのですが、Ustreamで見ていると、気になるのが、PowerPointで表示しているスライドを下の方から撮影しているので、スライドが台形に歪んでほとんどです。

 

そんな台形歪みを補正する方法と言えば斜影変換

この変換もOpenCVを使えば簡単にできちゃいます。

ということで、ブラウザに表示しているUstreamの動画の歪みを補正するソフトを作ってみました。

 

ダウンロードはこちら↓から

UstHomography.zip

開発環境:Windows7、C++/CLI(VS2005、.NET FRamework2.0)、OpenCV2.2

※OpenCV2.2は別途インストールが必要です。
他の環境では動作確認していないので、動作しない場合はご了承願います。

 

使い方は、上記のファイルをダウンロード、解凍し、解凍したファイル(UstHomography.exe)をダブルクリックして実行します。

プログラムを実行すると、ウィンドウが2つ開き、赤い四角が表示されている部分を、台形に歪んでいる部分にマウス操作で合わせます。

すると、他方のウィンドウに台形が補正された画像が表示されます。

また、カラー⇒モノクロ変換、明度、コントラストの調整の機能を付けました。

 

ほんと、OpenCVを使うと、こんなソフトを作るのも簡単!

でも、あまり評価していないので、あしからず...

 

Windows7がシャットダウンしない場合

最近、私のWindows7マシンをシャットダウンする時に、シャットダウンしていますと表示されたまま、シャットダウンしない現象が多発し、しょうがないので、電源ボタンの長押しをして電源を落としていました。

 

シャットダウンしない原因を探してみると以下のような原因が考えられるとのこと。

 

①ビデオカードなどのドライバの不具合
②常駐ソフトによる問題(私の場合はこれが原因でした)
③ハードディスクの電源がOFFになっているため

 

など。
①に関しては、Windows Updateやドライバの更新などもやってみましたが、現象は変わらず

 

②は手間ですが、怪しい常駐ソフトを終了してみてシャットダウンして、シャットダウンすれば、そのアプリがかなり怪しいと思われます。

 

私の場合は、iPhoneを無線LANにつなぐために使っていたGW-USNano2-GというUSBタイプの無線LANの常駐ソフト(クライアント・マネージャ)をアンインストールしたところ、今のところシャットダウンしてくれるようになりました。

(せっかく買ったのに、使い物にならなくなってしまいました...)

 

③はハードディスクがシャットダウン時に電源がOFFになっているとシャットダウンできない場合があるとのこと。
試しにシャットダウンの前にエクスプローラで各ドライブをクリックしてドライブの内容を表示させ、ドライブをONにしてからシャットダウンを行った。これでシャットダウンしれくれる場合もありました。

 

ということで、私の場合は増設したハードディスクの電源がOFFになっていたため、Windows7がシャットダウンできなかったみたい。
そのため、電源管理の設定をいろいろ見てみたが、非アクティブなハードディスクの電源を切る時間設定はあるものの、常にオンのような設定が無い。

 

そこで、③の操作をC#でプログラム的に行い、最後にshutdown.exeを実行させるだけのプログラムを作ってみました。

 

シャットダウンしてくれない人は試してみては?
これ↓

 

ShutdownEx.zip

 

使い方は上記のファイルをダウンロード、解凍し、ファイル(ShutdownEx.exe)をデスクトップなど、どこでもいいのですが、ファイルを置いておき、シャットダウンしたい時に、このファイルをダブルクリックして実行します。

 

ただし、プログラム実行後、すぐにシャットダウン動作に入るので、実行する前に編集中のファイルを保存するなどして、ご注意下さい

 

プログラミングへ戻る

【.NET】GraphicsBoxコントロール

.NET(VB.NET、C#)に対応した画像や線などの描画向けにPictureBoxコントロールを継承した
GraphicsBoxなるコントロールを作成しました。

 

このGraphicsBoxはPictureBoxを使っていて足りないな~と思う、

 

  • 再描画してくれるGraphicsオブジェクト
  • MouseWheelイベント
  • PensやColorsのようなFontのクラス

 

をそれぞれ、

 

  • Graphicsプロパティ
    コントロールがリサイズされるたびに、Graphicオブジェクトを再確保し、プロパティで取得できます。
  • MouseWheeledイベント
    GraphicsBoxにフォーカスがある時(Focus()をした後)、マウスホイールを上下に回転させたときにMouseWheeledイベントが発生します。
  • Fontsプロパティ
    フォームのデザイナ上のプロパティのFontsでGraphicsBoxへFontを指定します。
    このFontを使用する場合は、 graphicsbox1.Fonts などとすると、Fontsプロパティで取得できます。

 

としてPictureBoxに追加しました。

 

対象のフレームワークを.NET Framework2.0としました。

 

で、このGraphicsBoxコントロールは

 

GraphicsBoxSample_Ver111.zip

 

 

よりダウンロードできます。

 

このコントロールの実態は上記ファイルを解凍したフォルダ内の

 

ImagingSolution.Control.GraphicsBox.dll

 

となります。

 

使い方はVisual Studioを起動し、ツールボックス上で右ボタンアイテムの選択参照ボタンをクリック→ImagingSolution.Control.GraphicsBox.dllを選択

 

すると、ツールボックスにGraphicsBoxのアイコンが表示されるので、あとはPictureBoxと同様に使用できます。

 

GraphicsBoxSample_Ver111.zipをダウンロードするとVisual Studio 2010 Express EditionのVB.NET、C#のサンプルもつけているので、お試し下さい。

 

サンプルプログラムを実行し、ウィンドウ内をクリックした後、マウスホイールを上下させると下図のように線と文字がホイールの回転に合わせて上下しながら表示されます。

 

 

バージョン 更新日 ファイル 更新内容
Ver.1.1.1 2017.12.19 GraphicsBoxSample_Ver111.zip SplitContainerへDockしたときに画像がちらつくのを修正
Ver.1.1.0 2013.9.16 GraphicsBoxSample_Ver110.zip ●名前空間をImagingSolution.GraphicsBoxからImagingSolution.Control.GraphicsBoxへ変更

●GraphicsオブジェクトをBufferedGraphicsへ変更し描画の高速化

Ver.1.0.2 2011.5.7 GraphicsBoxSample_Ver102.zip MouseWheeledイベントを実装していないときのエラーを修正
Ver.1.0.1 2011.4.20 GraphicsBoxSample_Ver101.zip Focus()をコントロール内のイベントへ移動
名前空間名の修正
ユーザーコントロールのアイコンを指定
Ver.1.0.0 2011.4.20 GraphicsBoxSample.zip 初版