C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C# MapChipの敷き詰めソフト


(過去ログ 117 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■69091 / inTopicNo.1)  C# MapChipの敷き詰めソフト作成に関して。
  
□投稿者/ LAT (9回)-(2013/12/03(Tue) 18:57:40)

分類:[C#] 

C# MapChipの敷き詰めソフト作成に関して。
https://box.yahoo.co.jp/guest/viewer?sid=box-l-6nskexkozlnieqr73w6c...
まず↑からソースを落として見てください
MapChipを切り出して、組み立てるというプログラムを作っているのですが、
widthとheightは読み込む画像の横と縦のピクセルで、
nUDW_n.Valueは↑の画像を縦に何分割するか、nUDH_n.Valueは横に何分割するかを表す変数です。
下記の配列のところでビルドはできますが、実行時にエラーが出ます。
どこが間違えているのか全く見当が付きません。
どうか無知な私に教えてください。

private void bRoad_Click(object sender, EventArgs e)
int nDW0 = Convert.ToInt32(nUDW_n.Value);
int nDH0 = Convert.ToInt32(nUDH_n.Value);
int nDW1 = width / nDW0;
int nDH1 = height / nDH0;
var nChip = new Rectangle[nDW1, nDH1]; //切り出す画像の配列の用意
for (int x1 = 0; x1 <= nDW1; ++x1) for (int y1 = 0; y1 <= nDH1; ++y1)
nChip[x1, y1] = new Rectangle(x1*nDW1, y1*nDH1, nDW1, nDH1);
var destRect = new Rectangle[nDW1, nDH1]; //切り出した画像一覧の配列の用意
for (int x2 = 0; x2 <= nDW1; ++x2) for (int y2 = 0; y2 <= nDH1; ++y2)
destRect[x2, y2] = new Rectangle(x2*nDW1, y2*nDH1, nDW1, nDH1); //左上の座標(x,y)、幅、高さ


ちなみにこの後切り出した画像をpictureBoxChip(pBChip)に間隔をあけて並べて、_@
それをpictureBoxMainに敷き詰めて画像として出力しようと思っているのですが、_A
@の方は
Bitmap bitmap = new Bitmap(pBChip.Image);
Graphics chipImage = Graphics.FromImage(bitmap);
この後どうすれば良いでしょうか。
またAの方は全くどうすればいいのか分かりません。余裕があればこちらも教えていただけると幸いです。

引用返信 編集キー/
■69093 / inTopicNo.2)  Re[1]: C# MapChipの敷き詰めソフト
□投稿者/ Azulean (249回)-(2013/12/03(Tue) 23:10:16)
2013/12/03(Tue) 23:11:20 編集(投稿者)

No69091 (LAT さん) に返信
> C# MapChipの敷き詰めソフト作成に関して。
> https://box.yahoo.co.jp/guest/viewer?sid=box-l-6nskexkozlnieqr73w6c...
> まず↑からソースを落として見てください

ソースコードをダウンロードして欲しいと書いていますが、その時点で協力してくれる確率が減ります。
というのも、掲示板に書けないぐらいの分量が予想されること、よく知らない方の URL を踏むことにリスクを感じることから、スルーする人が増えるためです。
なお、先ほど試したところ、公開中のファイルはないそうです。


> 下記の配列のところでビルドはできますが、実行時にエラーが出ます。

この手の質問にありがちですが、エラーと例外は区別しましょう。
そして、エラーであっても、例外であっても、どのようなエラーが出たかと、どの行で出たのかを具体的に示すべきです。
そうするだけでも回答を得やすくなりますし、回答者側の労力も減ります。


> var nChip = new Rectangle[nDW1, nDH1]; //切り出す画像の配列の用意
> for (int x1 = 0; x1 <= nDW1; ++x1) for (int y1 = 0; y1 <= nDH1; ++y1)
> nChip[x1, y1] = new Rectangle(x1*nDW1, y1*nDH1, nDW1, nDH1);

この 3 行でまず一つ思い当たります。
そこで、以下の点を改めて調べなおす、学び直すことから始めましょう。

・x1 の取り得る範囲は何でしょうか。
・配列で int[nDW1] として時に確保される要素数は何だったでしょうか。
・配列は要素数に対して、アクセスできるインデックスの範囲はどうなっていたのでしょうか。
引用返信 編集キー/
■69094 / inTopicNo.3)  Re[2]: C# MapChipの敷き詰めソフト
□投稿者/ LAT (10回)-(2013/12/03(Tue) 23:35:30)
2013/12/04(Wed) 07:33:28 編集(投稿者)

>なお、先ほど試したところ、公開中のファイルはないそうです。
すみません。
公開してあるはずだったんですが…
https://box.yahoo.co.jp/guest/viewer?sid=box-l-6nskexkozlnieqr73w6c5lvtza-1001&uniqid=de62558e-9eab-4302-ac04-449621d3958aです。

>ソースコードをダウンロードして欲しいと書いていますが、その時点で協力してくれる確率が減ります。
>というのも、掲示板に書けないぐらいの分量が予想されること、よく知らない方の URL を踏むことにリスクを感じることから、スルーする人が増えるためです。
以後気を付けます。

あと大変申し訳ないのですが、試行錯誤の末クリアできました。
本当にお手間を取らせて申し訳ありませんでした。
解決済み
引用返信 編集キー/
■69102 / inTopicNo.4)  Re[3]: C# MapChipの敷き詰めソフト
□投稿者/ ムドー (10回)-(2013/12/04(Wed) 12:55:27)
No69094 (LAT さん) に返信
> 2013/12/04(Wed) 07:33:28 編集(投稿者)
>
> >なお、先ほど試したところ、公開中のファイルはないそうです。
> すみません。
> 公開してあるはずだったんですが…
> https://box.yahoo.co.jp/guest/viewer?sid=box-l-6nskexkozlnieqr73w6c5lvtza-1001&uniqid=de62558e-9eab-4302-ac04-449621d3958aです。
>
> >ソースコードをダウンロードして欲しいと書いていますが、その時点で協力してくれる確率が減ります。
> >というのも、掲示板に書けないぐらいの分量が予想されること、よく知らない方の URL を踏むことにリスクを感じることから、スルーする人が増えるためです。
> 以後気を付けます。
>
> あと大変申し訳ないのですが、試行錯誤の末クリアできました。
> 本当にお手間を取らせて申し訳ありませんでした。

余計なことかもしれませんが・・・・

質問に対して解決された場合、

 何が原因でどこをどういう風に変えたら解決した

という報告があると、同じ問題でつまずいている人の為になりますし、
似たような質問が投稿されることも少なくなります。(回答者の負担も減ります。)

トピックを立てる際は上記を意識していただけると幸いです。

以上、失礼いたしました。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -