画像の分割描画について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
samusu0905
記事: 336
登録日時: 10年前

画像の分割描画について

#1

投稿記事 by samusu0905 » 10年前

他の人も画像の分割方法を聞いていますが、どれもDXライブラリのようですね。
自分はDXライブラリではなく、C言語で分割処理が可能かどうかお聞きしたいのですが。
まあ関数なのはわかってます。ただ、自作で作った関数の中にどんな処理を書けば画像の分割処理
が行えるのかを知りたいです。参考にしたいので、プログラムをお願いできませんか?
自分は分割処理をやったことないのでわかりません。多少難しくても大丈夫です。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 画像の分割描画について

#2

投稿記事 by h2so5 » 10年前

言語とライブラリの区別くらいつけてください。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#3

投稿記事 by samusu0905 » 10年前

すみません。もう少し勉強します。
では質問を少し変えますが、C言語でも画像の分割って可能ですか?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 画像の分割描画について

#4

投稿記事 by みけCAT » 10年前

samusu0905 さんが書きました:では質問を少し変えますが、C言語でも画像の分割って可能ですか?
はい。
画像のファイルからの読み込み、分割、ファイルへの書き出しを、全てC言語で実装できます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#5

投稿記事 by softya(ソフト屋) » 10年前

画像の分割は当然可能です。Linuxなんて殆どC言語だけで書かれています。そのぐらいのこと当然出来ます。
ただ、手間やら難易度やら、やる意義は置いておいてです。

そもそも 4x4の配列を 4つの2x2の配列に分割することが出来るか出来ないかで初歩の初歩から説明のレベルが変わってくる問題ですから、
> 自分は分割処理をやったことないのでわかりません。多少難しくても大丈夫です。
と言われても半信半疑にしか成れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#6

投稿記事 by samusu0905 » 10年前

みけCATさん>>回答有難うございます。
>画像のファイルからの読み込み、分割、ファイルへの書き出し
画像読み込みはできています。問題は分割の仕方です。分割する際に、配列って使用しますよね?後、ファイルの書き出しってありますが、これってどうゆうことですか?

softyaさん>>回答有難うございます。
すみませんね。まだ、C言語見習いみたいなもので。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#7

投稿記事 by softya(ソフト屋) » 10年前

>?後、ファイルの書き出しってありますが、これってどうゆうことですか?

処理系未定義で、ライブラリも未指定だと、C言語の標準ライブラリの範囲でできるのは読み込んで分割してファイル出力するぐらいしか出来ないと言うことです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 画像の分割描画について

#8

投稿記事 by みけCAT » 10年前

softya(ソフト屋) さんが書きました:処理系未定義で、ライブラリも未指定だと、C言語の標準ライブラリの範囲でできるのは読み込んで分割してファイル出力するぐらいしか出来ないと言うことです。
そのようなことはありません。もちろんモザイク加工、グレースケール化などのいろいろな加工がC言語と標準ライブラリでできるはずです。
(C言語はチューリング完全なので、「計算できる」ことは理論上なんでも計算できるはずです)
ただ、画像をプログラムの内部で生成するだけだとあまり面白くないだろうし、
せっかく分割しても出力しないと意味がないだろうと思いました。
(これは自分の考えなので、もちろん入出力が必要ないのならば実装しなくてもかまいません)
このような考え方から、「ファイルからの読み込み」「ファイルからの書き出し」をできることの例に加えさせていただきました。
samusu0905 さんが書きました:ファイルの書き出しってありますが、これってどうゆうことですか?
「ファイルの書き出し」は、「分割した画像データをファイルに保存する」ということです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#9

投稿記事 by softya(ソフト屋) » 10年前

みけCAT さんが書きました:
softya(ソフト屋) さんが書きました:処理系未定義で、ライブラリも未指定だと、C言語の標準ライブラリの範囲でできるのは読み込んで分割してファイル出力するぐらいしか出来ないと言うことです。
そのようなことはありません。もちろんモザイク加工、グレースケール化などのいろいろな加工がC言語と標準ライブラリでできるはずです。
(C言語はチューリング完全なので、「計算できる」ことは理論上なんでも計算できるはずです)
ただ、画像をプログラムの内部で生成するだけだとあまり面白くないだろうし、
せっかく分割しても出力しないと意味がないだろうと思いました。
(これは自分の考えなので、もちろん入出力が必要ないのならば実装しなくてもかまいません)
このような考え方から、「ファイルからの読み込み」「ファイルからの書き出し」をできることの例に加えさせていただきました。
samusu0905 さんが混乱しないように話を避けただけですので、ご理解ください。
とこれで混乱させたかもしれません。
オフトピック
【補足】 offtopicを使っていただいたほうが良かったかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#10

投稿記事 by samusu0905 » 10年前

みけCATさん・softyaさん>>回答有難うございます。
なるほど
>ファイルの書き出し
とはそうゆうことだったんですね。理解しました。
分割された画像から一部を描画するには配列使うしかないですよね?
さっきまで、DXライブラリの方をやってましたが、画像の一部を描画する際に配列をつかっていました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#11

投稿記事 by softya(ソフト屋) » 10年前

>分割された画像から一部を描画するには配列使うしかないですよね?
>さっきまで、DXライブラリの方をやってましたが、画像の一部を描画する際に配列をつかっていました。

画像の画素(ピクセル)を扱う配列とDXライブラリのハンドルを格納する配列とでは全然意味が違いますよ。
同列に扱われていませんよね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#12

投稿記事 by usao » 10年前

>配列使うしかないですよね?

「画像」を表すデータを プログラム内でどのように扱うかは底なしに自由ですよね.
「画像」をファイルから読もうが,プログラム内で作ろうが,好きなデータの持ち方にすればよいわけで.
(「画像=画素が並んだもの」であるから, 配列 がそのデータを表すのに適している(ことが多い)でしょうけど.)

あなたの言う「分割」が何を指すのかわかりませんが,
自分の決めた形でデータを持ったのなら,あとはそれを適切に読み書きすればいいわけです.

>画像読み込みはできています。
ということですから,既に あなたのプログラムでの画像データの保持の仕方 が決まっているのでしょうから,
そのデータ上での「画像の分割の仕方」を問うならば,
少なくともそのデータの形式くらいは示さなければ,誰も具体的な話はできないのではないかと思いますよ.

あと,「分割」の詳細な処理内容を説明する必要もありますね.

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#13

投稿記事 by samusu0905 » 10年前

softyaさん>>回答有難うございます。
>画像の画素(ピクセル)を扱う配列とDXライブラリのハンドルを格納する配列とでは全然意味が違いますよ。
>同列に扱われていませんよね?
大丈夫です。そこは同列にしてません。

usaoさん>>回答有難うございます。
>あなたの言う「分割」が何を指すのかわかりませんが,
自分の言う「分割」はそのままなんですが、DXライブラリにもあったとおり、画像を分割読み込みすることです。
一つの画像に左右上下の動くキャラクタのモーションがありますよね? その中から一つ画像を読み込んで描画する処理です。
>少なくともそのデータの形式くらいは示さなければ,誰も具体的な話はできないのではないかと思いますよ.
データの形式というと、画像のJPGファイルだとかPNGファイルのことですね?
それなら、自分が普段使用しているデータの形式はJPGファイルとPNGファイルです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#14

投稿記事 by softya(ソフト屋) » 10年前

いつの間にかC言語で画像分割の話が、DXライブラリのLoadDivGraphでの画像の分割読み込み・画像ハンドルの話にすり替わっている印象です。

>一つの画像に左右上下の動くキャラクタのモーションがありますよね? その中から一つ画像を読み込んで描画する処理です。

DXライブラリは画像を一括で読み込んで、画像ハンドルで分割しているように見せかけているだけです。
内部的にはDrawRectGraphと同等のことが行われます。

と言うことで、話の論点をもう一度整理してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#15

投稿記事 by samusu0905 » 10年前

softyaさん>>回答有難うございます。
>DXライブラリは画像を一括で読み込んで、画像ハンドルで分割しているように見せかけているだけです
そうゆうことだったんですね。分かってきた気がします。
後、
>内部的にはDrawRectGraphと同等のことが行われます
LoadDivGraphが内部的にDrawRectGraphと同等ってことですね?

だとすれば自分がやりたいのは、「DXライブラリのハンドルを格納する配列」ではなく、
「画像の画素(ピクセル)を扱う配列」の方法でやりたいですね。
この場合、画像を読み込んで、実際に描画を行う関数で配列を使うとうまく出来る形ですか?
どのようなプログラムだと出来ますか?解決策というより、説明をお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#16

投稿記事 by softya(ソフト屋) » 10年前

> LoadDivGraphが内部的にDrawRectGraphと同等ってことですね?

いえ、LoadDivGraphからDrawGraph等まで含めての話です。

>だとすれば自分がやりたいのは、「DXライブラリのハンドルを格納する配列」ではなく、
>「画像の画素(ピクセル)を扱う配列」の方法でやりたいですね。
>この場合、画像を読み込んで、実際に描画を行う関数で配列を使うとうまく出来る形ですか?
>どのようなプログラムだと出来ますか?解決策というより、説明をお願いします。

やりたい事がイマイチ明確ではありません。
LoadDivGraph+DrawGraphやLoadGraph+DrawRectGraphで実現できない理由がないからです。
なぜ面倒で激烈に遅い 「画像の画素(ピクセル)を扱う配列」 を使う必要があるか説明してください。
LoadDivGraphやDrawRectGraphを理解されていないだけじゃないかと言う懸念が消えません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#17

投稿記事 by usao » 10年前

>少なくともそのデータの形式くらいは示さなければ,誰も具体的な話はできないのではないかと思いますよ.
データの形式というと、画像のJPGファイルだとかPNGファイルのことですね?
それなら、自分が普段使用しているデータの形式はJPGファイルとPNGファイルです。
そうきたか…… まるで通じていないのですね……

一応 何を言ってたのか を説明しておくと……
あなたは 画素値が並んでいる配列の上で作業したい という話をしているのだと思うので
じゃあその配列って実際はどういうデータなんですか? ということを言っているわけです.
読み込むファイルの形式じゃなくて,それを読んだ後のデータはどういう形なの? ということです.
例えば,
「unsigned charの1次元配列で,各画素の情報は3バイト(配列要素3つ分)で,
 その並びは B,G,R 順となっています.
 ただしパディングありで,各行のデータは4の倍数バイトに整列します(行末に0埋め).」
だとか,そういう話のこと.

#なんか当初の話と違って(?) DXライブラリを使う話っぽいですね.
 (要は,DXライブラリでロードした画像の画素値情報にアクセスする方法 が知りたいということ?)
 ライブラリ依存の話であるならば,私は(DXライブラリ知らないから)これ以上回答できませんので,
 その場合は返答不要です.

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#18

投稿記事 by samusu0905 » 10年前

softyaさん>>
>なぜ面倒で激烈に遅い「画像の画素(ピクセル)を扱う配列」を使う必要があるか説明してください。
説明と言われてもしようがありませんが。
では聞きますが、LoadDivGraphやDrawGraphを使わずにどんな方法なら画像の中から一部を描画できますか?
多分googleで検索しても良い例が出てこない気がします。

>やりたい事がイマイチ明確ではありません。
自分なりには明確なつもりですが。いっそうプログラムの形だけでも書いてもらえませんか?
説明もいいですが、やはりプログラムで「こんな感じです」みたいな形で書いてもらえると有り難いのですが。
そうすればそれを参考にしてプログラム書けますよ。お願いします。
これ以上は考えずらいので。一昨日ぐらいから画像の中の一部を描画する処理で困ってます・・。
これが出来れば解決にしたいのですが。

usaoさん>>回答有難うございます。
>私は(DXライブラリ知らないから)これ以上回答できません
自分もつい最近DXライブラリを試したぐらいなので、良くわからないです。
別にDXライブラリにこだわっているわけではありません。
>ライブラリ依存の話
依存の話までではありません。DXライブラリじゃなくとも大丈夫ですよ。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#19

投稿記事 by softya(ソフト屋) » 10年前

大きな画像の一部を抜き出して描画する関数がDrawRectGraphです。
「DXライブラリ置き場 リファレンスページ DrawRectGraph」
http://homepage2.nifty.com/natupaji/DxL ... html#R3N20
これを調べた上でサンプルを試し、その上でDrawRectGraphでは何故 samusu0905さんのやりたい事を実現出来ないか問題点を書いて貰わないと画素(ピクセル)を扱うことで出来るようになる samusu0905さんの考えるアルゴリズムが想像できません。
DrawRectGraphを知らべたり試したりせずに返答していないか私は疑っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#20

投稿記事 by samusu0905 » 10年前

usaoさん>>
>「unsigned charの1次元配列で,各画素の情報は3バイト(配列要素3つ分)で,
> その並びは B,G,R 順となっています.
> ただしパディングありで,各行のデータは4の倍数バイトに整列します(行末に0埋め).」
>だとか,そういう話のこと.
それでしたら、自分の使っている画像は各画素の情報が4バイトってことになりますが。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#21

投稿記事 by samusu0905 » 10年前

softyaさん>>
>DrawRectGraphを知らべたり試したりせずに返答していないか私は疑っています。
これはちゃんと調べて試したりもしましたよ。出来ないということはなかったです。ちゃんとできましたよ。
自分がやりたいのはDXライブラリじゃなくてC言語で出来ないのかってことです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#22

投稿記事 by softya(ソフト屋) » 10年前

やっぱり話しの論点が整理できておりません。
1.画面に描画するのなら何らかのライブラリ/APIは必要です。どうするのかを明確にしてください表示せずファイルを作るというのも選択肢です。
2.jpg/pngを読み込むのを自力で作るのはsamusu0905さんの知識的に困難ですので、もっと単純な画素フォーマットを読み込むことにしてください。C言語の標準ライブラリの範囲で扱える簡単なものが良いです。
3.最初に書いた「そもそも 4x4の配列を 4つの2x2の配列に分割することが出来るか出来ないかで初歩の初歩から説明のレベルが変わってくる問題ですから、」が出来るかどうかの明確な回答を頂いておりません。
4.C言語の機能だけで分割した画像を生成するに間違いないでしょうか?
以上4つをお答えください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#23

投稿記事 by samusu0905 » 10年前

softyaさん>>
>1.画面に描画するのなら何らかのライブラリ/APIは必要です。どうするのかを明確にしてください表示せずファイルを作る >というのも選択肢です。
画像を描画するときは、学内ライブラリを使っております。これ(学内ライブラリ)があるので描画は問題ありません。実際にDXライブラリは使用せずに学内ライブラリで描画を行っております。

>2.jpg/pngを読み込むのを自力で作るのはsamusu0905さんの知識的に困難ですので、もっと単純な画素フォーマットを読み >込むことにしてください。C言語の標準ライブラリの範囲で扱える簡単なものが良いです。
2番に関しては、自分も納得できます。確かに今の自分の知識だけでは自力で画像を読み込む関数は作れません。

>3.最初に書いた「そもそも 4x4の配列を 4つの2x2の配列に分割することが出来るか出来ないかで初歩の初歩から説明のレ>ベルが変わってくる問題ですから、」が出来るかどうかの明確な回答を頂いておりません。
これは「4x4の配列を、4つの2x2の配列に分割できるか」ってことですね?これが出来てなかったので困っていたんです。
だからトピックに立てたんです。

>4.C言語の機能だけで分割した画像を生成するに間違いないでしょうか?
それで間違いはないです。

以上が私の答えです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#24

投稿記事 by softya(ソフト屋) » 10年前

1.に関しては、DXライブラリならメモリイメージから画像を表示する方法は私は知っていますが、学内ライブラリィは存じませんのでサポートできません。
2.PPMなどのフォーマットをオススメします。
「画像研究入門」
http://image.onishi-lab.jp/001.html
3.では、まずそのコードを書いてみてださい。例を挙げる必要以前の基礎アルゴリズムです。画像を扱う前にint値の配列で分割してみましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#25

投稿記事 by samusu0905 » 10年前

>1.に関しては、DXライブラリならメモリイメージから画像を表示する方法は私は知っていますが、学内ライブラリィは存じませんのでサポートできません。
そうですね。学内ライブラリは私の学校のサークルで使用しているライブラリなので存在するはずがありませんね。

>2.PPMなどのフォーマットをオススメします。
>「画像研究入門」
分かりました。確認しておきます。

>3.では、まずそのコードを書いてみてださい。例を挙げる必要以前の基礎アルゴリズムです。画像を扱う前にint値の配列で>分割してみましょう。
はい、わかりました。ではここにコードを載せます。
画像をロードしているソースコードがこれです。

コード:

//*********************************************************
//            グラフィックデータ管理処理
//*********************************************************
#include <stdio.h>			//C言語
#include "gs.h"				//学内ライブラリィ
#include "def.h"			        //共通定義
#include "Data.h"			//データ管理


//変数宣言-------------------------------------------------
gsTexture sPlayer;			//プレイヤー

//変数参照-------------------------------------------------
extern int gSceneMode;		//モード
extern int gTimer;			//タイマー


//メイン処理-----------------------------------------------------------------------------------------------------
void DataMain(void)
{
	//タイマーが4より大きければ
	if( gTimer > 4)
	{
		//グラフィックのロード
		//プレイヤー
		gsLoadTexture( &sPlayer, "画像&サウンド/画像/player.jpg", 0xff000000 );
		//サウンドのロード
	}
}


//表示------------------------------------------------------------------------------------------------------
void DataDraw(void)
{
	gsDrawText( 10, 10, "LOADING");
}


//終了-------------------------------------------------------------------------------------------------------
void DataTerm(void)
{
	//グラフィックの解放
	gsReleaseTexture( sPlayer );		//プレイヤー
}


ここで、プレイヤーの処理を行っているコードです。

コード:

//*************************************************
//                 プレイヤー処理
//*************************************************
#include <stdio.h>			//C言語
#include "gs.h"				//学内ライブラリ
#include "def.h"			//共通定義
#include "Player.h"			//プレイヤー


//変数宣言-----------------------------------------
OBJ gPlayer;				//プレイヤーの構造体


//変数参照-----------------------------------------
extern gsTexture sPlayer;		//プレイヤー



//開始--------------------------------------------------------------------------------------------
void PlayerStart(void)
{
	gPlayer.x = 0;
	gPlayer.y = 494;
	PlayerMove();				//移動
	PlayerInScreen();			//移動範囲の制限
}


//メイン処理--------------------------------------------------------------------------------------
void PlayerMain(void)
{
	PlayerMove();			//移動
	PlayerInScreen();		//移動範囲の制限
}


//表示--------------------------------------------------------------------------------------------
void PlayerDraw(void)
{
	gsDraw2D( sPlayer, (int)gPlayer.x, (int)gPlayer.y);			//プレイヤー
}


//移動---------------------------------------------------------------------------------------------
void PlayerMove(void)
{
	//Dキー、パッド右を押したら歩く
	if( gsKeyState('D')==GSKS_PRESS ||
		gsGetJoyPadState(0, JOYPAD_RIGHT)==GSKS_PRESS)
	{
		gPlayer.x += 4;
	}

	//十字キー左、パッド左を押したら左に歩く
	if( gsKeyState('A')==GSKS_PRESS ||
		gsGetJoyPadState(0, JOYPAD_LEFT)==GSKS_PRESS)
	{
		gPlayer.x -= 4;
	}

	//十字キー上、パッド上を押したらジャンプ
	/*if( gsKeyState('W')==GSKS_PRESS ||
		gsGetJoyPadState(0, JOYPAD_BUTTON10)==GSKS_PRESS)
	{
		gPlayer.y -= 4;
	}*/
}


//移動範囲の制限-----------------------------------------------------------------------------------
void PlayerInScreen(void)
{
	//プレイヤーのX座標が0より小さいなら
	if( gPlayer.x < 0)
	{
		gPlayer.x = 0;
	}

	//プレイヤーのX座標が1024より大きければ
	if( gPlayer.x > 924)
	{
		gPlayer.x = 924;
	}
}
以上がプレイヤー処理コードと画像をロードする処理コードです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#26

投稿記事 by softya(ソフト屋) » 10年前

画像をロードするコードではなく、まず勉強としてintの配列4x4を4つのint配列2x2に分割転送するコードを書いてください。
学内ライブラリのコードは必要ありません。
なぜなら画素を取り出す方法も表示する方法も不明なのですから扱う必要性がありません。
それで良いんですよね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#27

投稿記事 by samusu0905 » 10年前

>intの配列4x4を4つのint配列2x2に分割転送するコード
これってどうゆうことですか?
さっきも同じようなこと書いてましたが、ここがわからないので書いても合ってるかどうか。

コード:

int p[16];  //p(プレイヤー)
int i[4] = p[16];
かなり不安です。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#28

投稿記事 by samusu0905 » 10年前

コード:

int p[16];
int i[4] = p[4];
ちょっと修正しました。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#29

投稿記事 by usao » 10年前

要するに,これができるかどうか,っていうことですかね.

コード:

//とりあえずintの配列.(これが元画像に相当.)
int SrcImg[4][4] = { なんか適当な値を入れておくこと };
あるいは
int SrcImg[ 4*4 ] = { ... }; かな

//これが結果用
typedef struct SmallImg
{
  int Img[2][2];
  あるいは
  int Img[ 2*2 ];
} SmallImg;

SmallImg SmallImgs[4];  //4個の 2*2サイズ画像

//SrcImgを分割処理して結果を SmallImgs[] に書き込むこと
void DivideImg()
{
   //ここを埋める
}

//
int main()
{
  DivideImg();  //分割処理
  //必要に応じて結果の確認表示とかをする
  return 0;
}

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#30

投稿記事 by samusu0905 » 10年前

分割転送するやり方がわかりません・・。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#31

投稿記事 by usao » 10年前

配列の扱い自体が怪しい感じでしょうか.
もっと簡単なとこから確認していかないとダメなんですかね.
こういうのとか…?

コード:

int main()
{
  int A[ 4 ] = { 0,0,0,0 };

  //配列Aの全ての要素の値を 5 にするコードをここに書くことができますか?

  {
    int i;
    for( i=0; i<4; i++ ){  printf( "%d  ", A[i] );  }
  }
  return 0;
}
オフトピック
仮に こういうレベルの話なのだとすれば
まず本とかでC言語の勉強をちゃんとやるべきな気がしますけど……

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#32

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:分割転送するやり方がわかりません・・。
forループが使えませんと言っているのと同じですよ。
オフトピック
私もゲームではない一般的なC言語の練習問題を1冊こなせるレベルまで勉強した方が良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#33

投稿記事 by samusu0905 » 10年前

勉強不足ですみません。
ご迷惑をお掛けしました・・。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#34

投稿記事 by samusu0905 » 10年前

usaoさん>>
それぐらいはできますよ。

コード:

#include <stdio.h>

int main(){
	int A[4]={0,0,0,0};

	A[0] = 5;
	A[1] = 5;
	A[2] = 5;
	A[3] = 5;


	{
		int i;
		for( i=0; i<4; i++){printf("%d", A[i]);}
	}
	getchar();
	return 0;
}
確かこんな感じですね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#35

投稿記事 by softya(ソフト屋) » 10年前

もうちょっと考えてみましょう。話の流れ的にこれじゃないですよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Mana

Re: 画像の分割描画について

#36

投稿記事 by Mana » 10年前

過去ログにこんなの見付けたのですが実際欲しいのはこれじゃないのですかね。
http://dixq.net/forum/viewtopic.php?t=1 ... 77#p116377
この関数はあったのかなかったのか事実は分からないままって感じで終わってますな。
こんなライブラリィが同時に複数あるとは考えられないですよね。

アバター
Tatu
記事: 445
登録日時: 13年前
住所: 北海道

Re: 画像の分割描画について

#37

投稿記事 by Tatu » 10年前

DXライブラリは使わず、学内ライブラリを使用するつもりなのですね?
前にDXライブラリを使うとかいうトピックがあった気がしますが。

そして学内ライブラリには画像を分割して読み込む機能も
画像の一部分だけを描画する機能もないのですね?

ない場合は画像ファイルをあらかじめ分割しておく必要があるので
画像分割用のプログラムをC言語で書きたいと。

しかしC言語で画像ファイルの読み込みと書き込みをする方法が分からない、
配列に読み込めたとしても配列を分解する方法が分からない
という問題があってできないと。


GIMPなどのペイントソフトを使って手動で分割してはどうですか?

► スポイラーを表示

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#38

投稿記事 by samusu0905 » 10年前

softyaさん>>
そうですか。自分はあれでいいかなと思ったのですが。どこがいけなかったですか?

Manaさん>>回答有難うございます。
>viewtopic.php?t=14656&p=116377#p116377
これは確認+解決にするのを忘れていました。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#39

投稿記事 by samusu0905 » 10年前

Taruさん>>回答有難うございます。
>DXライブラリは使わず、学内ライブラリを使用するつもりなのですね?
>そして学内ライブラリには画像を分割して読み込む機能も
>画像の一部分だけを描画する機能もないのですね?

>ない場合は画像ファイルをあらかじめ分割しておく必要があるので
>画像分割用のプログラムをC言語で書きたいと。

>しかしC言語で画像ファイルの読み込みと書き込みをする方法が分からない、
>配列に読み込めたとしても配列を分解する方法が分からない
>という問題があってできないと。
そのとおりです。よくわかりましたね^^そうゆうことです。

>GIMPなどのペイントソフトを使って手動で分割してはどうですか?
手動でということは、画像をコピーして画像の向きを変えたりするってことですか?
ですが、画像は配列4×4ですでに左右の向きが入っている画像なんです。(上下の向きも入ってます)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#40

投稿記事 by softya(ソフト屋) » 10年前

> そうですか。自分はあれでいいかなと思ったのですが。どこがいけなかったですか?

他に方法があれば書いてみてください。
無いなら、無いと断言してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#41

投稿記事 by samusu0905 » 10年前

Tatuさん>>あの、手動ってことはペイントソフトとかで同じものをコピーして、向きを変える。
向きをかえたら左右の画像を一つ一つ名前をかえて保存するってことですか?

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#42

投稿記事 by samusu0905 » 10年前

softyaさん>>
>無いなら、無いと断言してください。
わかりました。これ以上はありません!
断言します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#43

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:softyaさん>>
>無いなら、無いと断言してください。
わかりました。これ以上はありません!
断言します。
やはり、C言語をちゃんと勉強したほうが良いようです。
forループを使う方法があります。
なので、samusu0905さんに現在できる現実的な方法はTatuさんの提案された方法です。
C言語をちゃんと勉強した上で取り組みなおすことを提案します。
※ 前にも同じこと提案したはずです。

【補足】
C言語の学習のサイトや練習問題サイトの紹介や、分からない事の質問は別トピックで聞いてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

rascal
記事: 27
登録日時: 10年前

Re: 画像の分割描画について

#44

投稿記事 by rascal » 10年前

横から失礼
>そのとおりです。よくわかりましたね^^そうゆうことです。
Tatuさんに対してのsamusu0905さんの返答が
かなり失礼な返答と見受けられます もうすこし言葉を選んで返答されるほうがいいと思います

ISleさんがgsDraw2DPartがあると言ってらっしゃいましたがそれを使用すれば話が進むのではないでしょうか?

Softyaさんがおっしゃりたいのは じゃあ5000個の配列があった場合は

コード:

#include <stdio.h>
 
int main(){
    
int a[5000] ={0,0,0,0,0,0,0,0,0 //5000個};

a[0]=5;
   .
   .
   .
a[4999] =5;
と書くつもりですか? ということです

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#45

投稿記事 by samusu0905 » 10年前

softyaさん>>
for文でしたか。忘れてました。for文なら配列の各要素を変えることができますね。
もっとC言語を勉強します。(C言語は配列、アドレス、ポインタまでは本を購入して勉強済みです。でも、忘れぎみなところがあるみたいなので、もう少し勉強します。)

コード:

#include <stdio.h>

int main(){
	int A[4]={5,5,5,5};
	int i;
	for( i=0; i<4; i++)
	{
		printf( "%d,", A[i]);
	}
	getchar();
	return 0;
}
あのプログラムでAの各要素を5に変えるにはこれでいいですか?

rascalさん>>回答有難うございます。
はい申し訳ございませんでした。Tatuさん失礼な返答をしてすみませんでした。これからは返答を改めます。
自分が間違ってました。for文があるのをすっかり忘れていました。
確かに、for文無しでやると一つ一つ変えることになりますね・・。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#46

投稿記事 by softya(ソフト屋) » 10年前

usaoさんのNo: 31の元の問題を見直すことをオススメします。
問題と全然答えの趣旨が違います。

> もっとC言語を勉強します。(C言語は配列、アドレス、ポインタまでは本を購入して勉強済みです。でも、忘れぎみなところがあるみたいなので、もう少し勉強します。)

もう少しではなく、ちゃんとやり直したほうが良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#47

投稿記事 by samusu0905 » 10年前

Tatuさん>>
for文ではできませんか?もしfor文で出来るならやりたいのですが。
手動だと画像の数がかなり増えてしまいます。

rascal
記事: 27
登録日時: 10年前

Re: 画像の分割描画について

#48

投稿記事 by rascal » 10年前

samusu0905さん
NO45の回答では 答えになっていません

コード:

int main()
{
  int A[ 4 ] = { 0,0,0,0 };

の部分の変更はしないで書けますか?ってことです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#49

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:Tatuさん>>
for文ではできませんか?もしfor文で出来るならやりたいのですが。
手動だと画像の数がかなり増えてしまいます。
えーと、学内ライブラリにメモリイメージを画像にするものがない限り、今のままやってもファイルは増えるのですが?
プログラムで自動でファイルを分割するか、GIMPなどで手動で分割するかの違いです。
なので、Tatuさんは手動を提案されています。
私は何度も念を押して聞いていますが理解されていませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#50

投稿記事 by samusu0905 » 10年前

グラフィックゲイルでオリジナルキャラを作ることにします。
そうすればできるかもしれません。
いきなり解決にしてすみません。色々と試したい事が出てきました。
皆さん色々と有難うございました。
rescalさん>>
そのことは先ほどsoftyaさんに言いましたよ。「できないなら、断言してください。」ってsoftyaさんが言ってたので、「できません!」っと断言したはずですが。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#51

投稿記事 by samusu0905 » 10年前

softyaさん>>
でしたら、プログラムで自動でファイルを分割する方がいいかと思います。
GIMPとかだと手間がかかりますよ。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#52

投稿記事 by softya(ソフト屋) » 10年前

> そのことは先ほどsoftyaさんに言いましたよ。「できないなら、断言してください。」ってsoftyaさんが言ってたので、「できません!」っと断言したはずですが。

これをfor文で書けないのはプログラマーとして致命的なので放置しない方がよいです。
放置すると言うのでしたらプログラマーを目指されているとは思えません。
オフトピック
厳しいことを書きますが、基礎を後回しにされてきたのでしょう。
しかし、ここらで腰を据えて取り組まないと前にも進めません。
プログラミングごっこ遊びで終わってしまいます。
> グラフィックゲイルでオリジナルキャラを作ることにします。

そういう問題でもないです。

> softyaさん>>
> でしたら、プログラムで自動でファイルを分割する方がいいかと思います。
> GIMPとかだと手間がかかりますよ。

Tetuさんは分割プログラムを組むのに半年とかの時間が必要と判断されたのでしょう。
私も同意見です。
勉強のためにやるなら意義はありますが、実用で急いで行う問題ならプログラムで組むのは無謀です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

rascal
記事: 27
登録日時: 10年前

Re: 画像の分割描画について

#53

投稿記事 by rascal » 10年前

>そのことは先ほどsoftyaさんに言いましたよ。「できないなら、断言してください。」ってsoftyaさんが言ってたので、「できません!」っと断言したはずですが。
に関してですが この方法以外にsamusu0905さんができない という認識ではなく 存在がない という風に言っておられるようにみえましたのでNO48のレスをしましたが
 SAMUSU0905さんができないという認識でいいですか?
> グラフィックゲイルでオリジナルキャラを作ることにします。
ペイントソフトでもなんでもできますよ ただここで皆さんがいってらっしゃる指向とは違う気がします

あまり理解されていないように思えるのですが CのみでPNG JPEGを表示させるには そのファイルの内部構造(フォーマット形式)を知る必要があります

>DXライブラリは使わず、学内ライブラリを使用するつもりなのですね?
>そして学内ライブラリには画像を分割して読み込む機能も
>画像の一部分だけを描画する機能もないのですね?
の部分では それであれば 1枚絵を表示する関数を使用するために最初から画像を分割保存して
たとえば  攻撃アクションの画像が8つの分割画像でできているなら 8枚をそれぞれ一枚の絵にして8個のファイルにしておかないとだめです ってことです

かずま

Re: 画像の分割描画について

#54

投稿記事 by かずま » 10年前

画像の分割描画のプログラムを書いてみました。

コード:

#include <stdio.h>
 
int p[4][4] = {
    { 1, 1, 1, 1},
    { 1, 0, 0, 1},
    { 1, 0, 0, 1},
    { 1, 1, 1, 1},
};

int ul[2][2];
int ur[2][2];
int dl[2][2];
int dr[2][2];

void copy(int p[4][4], int x, int y, int q[2][2])
{
    int i, j;
    for (i = 0; i < 2; i++)
        for (j = 0; j < 2; j++)
            q[i][j] = p[x + i][y + j];
}

void draw(void *p, int h, int w)
{
    int i, j;
    int *q = (int *)p;
    for (i = 0; i < h; i++) {
        for (j = 0; j < w; j++) {
            if (q[i*w + j] == 1)
                printf("■");
            else
                printf("□");
        }    
        printf("\n");
    }
    printf("\n");
}

int main(void)
{
    draw(p, 4, 4);

    copy(p, 0, 0, ul);
    copy(p, 0, 2, ur);
    copy(p, 2, 0, dl);
    copy(p, 2, 2, dr);

    draw(ul, 2, 2);
    draw(ur, 2, 2);
    draw(dl, 2, 2);
    draw(dr, 2, 2);

    return 0;
}
実行結果

コード:

■■■■
■□□■
■□□■
■■■■

■■
■□

■■
□■

■□
■■

□■
■■

理解できますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#55

投稿記事 by softya(ソフト屋) » 10年前

samusu0905さんが言えばソースコードをくれると勘違いしたのは、かずまさんにも原因がありますので自重して頂ければ幸いです。
すくなくとも、ソースを出そうとしない他のメンバーの意図を挫くので事前にご相談ください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Tatu
記事: 445
登録日時: 13年前
住所: 北海道

Re: 画像の分割描画について

#56

投稿記事 by Tatu » 10年前

かずまさんは今後ゴーストプログラマーとしてsamusu0905さんの面倒を見るつもりなのでしょうか?

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#57

投稿記事 by usao » 10年前

オフトピック
まぁ,この程度(と言ったら失礼かもですが)の内容のコードを この時点で 出しても差し支えないとは思いますけどね.
実際の画像に適用するには 応用 しないとならないものですし,
書き込みの主題は
>理解できますか?
にあるのでしょうし.
[勝手にまとめ]
やりたいこと:
メモリ上の画像イメージを操作して,画像を分割したい.目的は画像の部分領域を表示すること.

・DXライブラリを使う話なのか違うのか → DXライブラリは使わない
・C言語で 画像ファイルをロードするには ファイルフォーマットを知る必要がありますよ.(ここは使用されているライブラリがやるのかな)
・イメージ情報の保持データ形式は? → 4byte/画素 な配列である模様.
・ところで 頑張って操作した配列の内容を画像として表示する手段が(使用されているライブラリに)あるのでしょうか? → 不明?
 →無い模様.
  目的は 「画像の部分領域を 表示する プログラムを作ること」ではなく,
  既存の画像をロード→分割→結果を複数画像ファイルとして出力すること である.
別の手段(逃げ道?)として,そもそも最初から「分割済みの」画像群を用意すれば悩まなくて済む,という選択肢もありますよ → 現在こっち方向に向かっている?
 分割をプログラムでやらずに手作業でやってしまうという方法もありますよ
・ところで intの配列の簡単な例はできますか? → どうにも厳しそう (基礎をちゃんと勉強されること推奨)


読み違えていた.修正.

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#58

投稿記事 by samusu0905 » 10年前

rascalさん>>回答ありがとうございます。
>1枚絵を表示する関数を使用するために最初から画像を分割保存して
>たとえば  攻撃アクションの画像が8つの分割画像でできているなら 8枚をそれぞれ一枚の絵にして8個のファイルにし>ておかないとだめです ってことです
そうですか。やっぱり使用中のライブラリに分割描画する機能がないのなら、攻撃モーションを一枚一枚ばらばらにして保存していく方法しかないってことですね? わかりました。やってみます。

かずまさん>>回答ありがとうございます。
それが画像を分割描画させるプログラムですね?
やはり実際にプログラムで書くと結構長くなってしまうんですね。
>理解できますか?
なんとなくですが少しは分かるような気がします・・・。
一応参考にしておきます。 rascalさんの言うペイントソフトでの方法でやってみて、できそうになければそちらのプログラム
を自分なりに工夫しておきます。自分はC言語と学内ライブラリの両方でゲームを作っているので、
C言語では最初にint main(){}と書きますが、学内ライブラリも使用しているので、int main(){}は書いてません。
学内ライブラリのやり方でゲーム作りを行っているので、C言語での方法とは少し違っているかもしれません。
実は学内ライブラリも自分で関数を作っていくやり方なんです。そこは多分C言語と同じだと思います。

softyaさん>>すみませんね。私のせいで皆さんを困らせてしまって。
本当に申し訳ないです。自分でもかなり理解不足であることはわかってます。
ですが、これから頑張っていけばゲームプログラマーを目指せると思っています。

Tatuさん>>
>かずまさんは今後ゴーストプログラマーとしてsamusu0905さんの面倒を見るつもりなのでしょうか?
そういえば、かずまさんにはポイントが見えませんが、これはどうゆうことですか?

usaoさん>>回答ありがとうございます。
>[勝手にまとめ]
>やりたいこと:
>メモリ上の画像イメージを操作して,画像を分割したい
だいたいそんな感じですね。
>・DXライブラリを使う話なのか違うのか → DXライブラリは使わない
最初にDXライブラリのことを自分が言ってしまったので、softyaさんとかを混乱させてしまっていました・・。
ですが、途中で学内ライブラリを使用していることを説明しました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#59

投稿記事 by softya(ソフト屋) » 10年前

samusu0905さんに危機感が通じていない様なのでもう一度念を押しておきますね。
samusu0905さんがプログラミングを初めて3ヶ月程度なら理解度が少々悪くてもなんとかなると思います。もし6ヶ月以上経過しているなら非常に危機的だと思います。
今までサボっていたのでこれから頑張るって事だとしても、この掲示板ではや3ヶ月です。いつかやるで、あっという間に2年や3年は経ちますよ。

ちなみに、かずまさんのコードは画像処理には足らないものが沢山あるので、本当に画像処理として組んだら10倍近いの長さのコードになります。
もちろん、画像処理ライブラリを併用してです。

>C言語では最初にint main(){}と書きますが、学内ライブラリも使用しているので、int main(){}は書いてません。
>学内ライブラリのやり方でゲーム作りを行っているので、C言語での方法とは少し違っているかもしれません。
>実は学内ライブラリも自分で関数を作っていくやり方なんです。そこは多分C言語と同じだと思います。

C言語である事とライブラリを使うことは別の問題です。
mainが隠蔽されることもあるので、言語とライブラリ環境を混同してはいけません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

rascal
記事: 27
登録日時: 10年前

Re: 画像の分割描画について

#60

投稿記事 by rascal » 10年前

こんにちは
samusu0905さんがやはり言語とライブラリについてよくわかってらっしゃらないようなので
一応説明しますね

言語>機械が扱える情報は1と0のみ これで記述された言語をマシン語と呼びます
    それでは人間には理解が難しいため人間にわかるように開発されたものが C言語やJAVAといったようなものになります
    種類がいくつかあり ここでの説明は省きます 詳細をもし知りたいなら→ インタプリンタとコンパイラ を参照してください

C言語はコンパイラに属される人間にわかりやすく開発されたプログラム記述方式です

ライブラリとはその人間にわかりやすく開発されたプログラム記述方式で記述されたプログラムのあつまりです
なのでC言語用の学内ライブラリを利用してプログラムをつくっているということなので それはc言語でつくってるのと同じ意義です

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#61

投稿記事 by samusu0905 » 10年前

softyaさん>>
私は、C言語をまだ3カ月ちょっとしか勉強してないです。昨日も勉強してましたよ。
もちろんもっとちゃんと勉強しますよ。

rascalさん>>
まあ、C言語とかはわかりますが、ライブラリを学校(専門学校)で聞いたとき、「ライブラリって何だろう?」という疑問
は最初ありました。授業でも言語について説明も受けました。ただ、ライブラリについては何も聞いてませんでした。

>ライブラリとはその人間にわかりやすく開発されたプログラム記述方式で記述されたプログラムのあつまりです
>なのでC言語用の学内ライブラリを利用してプログラムをつくっているということなので それはc言語でつくってるのと同>じ意義です
なるほど、ライブラリとはそうゆう物なんですね。納得しました。教えていただき有難うございます。
てっきり自分が利用している学内ライブラリとC言語は違うものかと思いました。
結局同じなんですね。分からなかった問題が解けたみたいで、凄くすっきりしました!

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#62

投稿記事 by samusu0905 » 10年前

C言語経歴のところを3か月ではなく6~9か月に変えました。
間違った情報をだして大変申し訳ございませんでした。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#63

投稿記事 by softya(ソフト屋) » 10年前

試しに簡単な問題を出してもよいでしょうか? 勉強の方向性が間違っていないか確認したいのですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#64

投稿記事 by samusu0905 » 10年前

まあ構いませんが、どんな問題ですか? 今、自分ももう一度C言語を見直しているところですが。
softyaさんや他の人が簡単でも、自分には難しいものがありますから。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#65

投稿記事 by softya(ソフト屋) » 10年前

これからの回答の参考にしたいので、ごく簡単な問題です。

「1から100の数字を表示するコンソールアプリです。ただし、5の倍数と7の倍数の時は数値ではなくそれぞれ★★★★★、★★★★★★★を出してくださいい。5と7の公倍数の場合は★でなく代わりに◆◆◆◆を出します。」

出来上がったら、ソースコードの添付と作るのにかかった時間も教えて下さいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#66

投稿記事 by samusu0905 » 10年前

softyaさん>>
>5の倍数と7の倍数の時は数値ではなくそれぞれ★★★★★、★★★★★★★を出してください
あのプログラムで5の倍数と7倍数の時はこうしなさいみたいな事はやったことがないですね。
逆にこのような問題を出されてもどうしようもないんですが。
多少時間がかかっても、やり方がわかればできます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#67

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:softyaさん>>
>5の倍数と7の倍数の時は数値ではなくそれぞれ★★★★★、★★★★★★★を出してください
あのプログラムで5の倍数と7倍数の時はこうしなさいみたいな事はやったことがないですね。
逆にこのような問題を出されてもどうしようもないんですが。
多少時間がかかっても、やり方がわかればできます。
この問題は、基礎のプログラミング力があるか確認する問題のアレンジです。
つまり、言語学習を普通にやってプログラミングの基礎レベルに達しているならば出来なければいけない問題というわけです。

> やり方がわかればできます

C言語入門書の最初の方をちゃんと習得していれば応用力で可能な問題です。
使う構文はfor文,if文,printf文程度ですので、見ても入門書の最初の方です。
本当は何も見ずにプログラムを組めないといけません。

【補足】
学習方針が間違っていなかいという確認は、こういう基礎レベルの事が出来るかどうかで大体わかります。
これが出来ない状態でゲームプログラミングをすること自体が無謀です。
これをすっとばせる人もいますが、そう言う人は天才なので何も教えることはありませんし、教えなくてもやがて自分で理解します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#68

投稿記事 by samusu0905 » 10年前

>本当は何も見ずにプログラムを組めないといけません。
本を見てやろうとはしてないです。後、使用するべき構文はわかってますよ。
分からないと言ったのは、5の倍数と7の倍数の時にこうするって書いてあったので、5の倍数と7の倍数の求め方が分からなかっただけです。5と7の倍数ってどう求めるんですか?
不等号を使えばいいのかどうか教えて教えてもらえますか?そこが分かればできるんですが・・。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#69

投稿記事 by softya(ソフト屋) » 10年前

ゲームでよく使うんですけどね。
> 5の倍数と7の倍数の求め方が分からなかっただけです。5と7の倍数ってどう求めるんですか?
中学の数学ですが、割った余りを使います。
【訂正】 割った余りは小学校の算数でした。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#70

投稿記事 by samusu0905 » 10年前

割った余りということは、%を使えばいいわけですね?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#71

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:割った余りということは、%を使えばいいわけですね?
他にも方法はありますが、一般的には%ですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#72

投稿記事 by samusu0905 » 10年前

そうですか。一応どれくらいで出来るか分かりませんが、やってみます。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#73

投稿記事 by samusu0905 » 10年前

時間がかかってすみません。合ってるかどうかわかりませんが、
こんな感じになりました。

コード:

#include <stdio.h>

int main()
{
	int i, j=5, f=7;
	for(i=1; i<100; i++)
	{
		printf("%d\n", i);
		if( i % j)
		{
			printf("☆☆☆☆☆");
		}else
		if( i % f)
		{
			printf("☆☆☆☆☆☆☆");
		}
		else
		{
			printf("◇◇◇◇");
		}
	}
	getchar();
	return 0;
}
間違いや抜けているところがあればお願いします。
直ぐに直しますので。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 画像の分割描画について

#74

投稿記事 by usao » 10年前

>合ってるかどうか
は,実際に実行してみればわかるのでは?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#75

投稿記事 by softya(ソフト屋) » 10年前

時間が書かれていないですが、2時間かかったと言うことですか?
あと動作確認した上で仕様を満たすものをお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#76

投稿記事 by samusu0905 » 10年前

実行はしました。
>2時間かかったと言うことですか?
言え、違います。朝からプログラム打っていたので、少し出かけていました(休憩)。
実際には40分か、30分くらいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#77

投稿記事 by softya(ソフト屋) » 10年前

これで終わりたいなら、それでも結構だと思いますがちゃんと最後までやってみたいと言うことであれば、正確なテスト結果の報告と問題点の分析は必要です。
ご自身でご判断ください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#78

投稿記事 by samusu0905 » 10年前

softyaさん>>回答有難うございます。
正確なテスト結果と問題の答え・分析をお願いします。
やはり知りたいです。知った方がすっきりしますし、少しは自分のためにもなります。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#79

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:softyaさん>>回答有難うございます。
正確なテスト結果と問題の答え・分析をお願いします。
やはり知りたいです。知った方がすっきりしますし、少しは自分のためにもなります。
まず、ご自分でやらないと意味が無いです。
今のところ、正確な結果の報告も無いですし、自分なりの分析も頂いておりません。
中高生でもなく直近でプロを目指していると言うことなので、プロでの視点とはどういうものだと意味でも厳し目でいきますね。

【補足】ちなみに答えを出すのはsamusu0905さんです。直し方をレクチャーします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

samusu0905
記事: 336
登録日時: 10年前

Re: 画像の分割描画について

#80

投稿記事 by samusu0905 » 10年前

わかりました。これ以上この問題をあるときりがないのでやめておきます。
softyaさんのおかげで自分の実力が大体わかりました。まだまだ、勉強は必要ですね。
色々とありがとうございました。感謝します。
softyaさんの出した問題は空いた時間にもう一度やり直してみます。
あと、ゲーム制作のほうですが。softyaさんを含め他の人も「学内ライブラリに拘る必要ない」っ仰っていたので、DXライブラリのほうでゲームを制作します。
これからはDXライブラリについて質問するので今後もよろしくお願いします!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#81

投稿記事 by softya(ソフト屋) » 10年前

samusu0905 さんが書きました:わかりました。これ以上この問題をあるときりがないのでやめておきます。
softyaさんのおかげで自分の実力が大体わかりました。まだまだ、勉強は必要ですね。
色々とありがとうございました。感謝します。
softyaさんの出した問題は空いた時間にもう一度やり直してみます。
あと、ゲーム制作のほうですが。softyaさんを含め他の人も「学内ライブラリに拘る必要ない」っ仰っていたので、DXライブラリのほうでゲームを制作します。
これからはDXライブラリについて質問するので今後もよろしくお願いします!
ちなみに、この問題はプログラマとして適正があるかの問題なのです。
「プログラムを書けないプログラマーがいるというお話 | 株式会社ダイレクトサーチジャパン」
http://blog.direct-search.jp/2011/10/blog-post_11.html
危機感を持って欲しいんですけどね。ご本人が良いなら私はこれ以上は言いません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
milfeulle
記事: 47
登録日時: 10年前
住所: マリーランド
連絡を取る:

Re: 画像の分割描画について

#82

投稿記事 by milfeulle » 10年前

ライブラリも重要だとは思いますが、まずは急がば回れでコンソールで遊んでみるといいと思いますよ! コンソールだってオセロとか、文字だけのRPGみたいなものとか、アイディア次第で色々作れると思います。

皆様が一生懸命samusu0905さんに頑張って考えてもらおう、(自分で作る喜びを味わって)楽しんでもらう、と考えていろいろな方面からアドバイスなり確認なりなさっているのに、期待に添えない返事(ex. ”合ってるかどうか“や”きりがないのでやめておきます“など)ばかりされているので気になって書かせていただきました。正直、皆様のアドバイスに対して「お前等、ゲームに関係のあることだけアドバイスしろよ。くだらないプログラミングの問題()に付き合ってる時間なんてないんだよ。」って思っていると捉えられかねませんよ;;
オフトピック
A「時速10kmの速さで3時間進んだらどのくらいの距離進めますか?」
B「距離xは、速さvと時間tによってx = vtと書けますよ。」
A「それではv = 10, t = 3なのですね? どうすればxがわかるのですか?」
B「x = 10 ☓ 3ですよ。」
A「ありがとうございます。よく理解出来ました。x = 30ですね。」
A「ところで、50kmを時速10kmで進むと何時間かかりますか?」
B「これも同じ式x = vtで求められますよ。」
A「具体的にやり方をおねがいします。」
B「つまり、tを求めたいので、t = x/vとします。」
A「xとvとtはどういういみですか?」
B「xは距離で、vは速度で、tは時間です。」
A「今回の場合xとvはいくつですか?」
B「それはx = 50, v = 10ですね。」
A「ありがとうございます。t = 50÷10=5ですね。よくわかりました。」
A「最後に1つ質問なのですが、40kmを2時間で進んだ場合、平均速度はいくつになりますか?」
B「20km/hです。」
ζ*'ヮ')ζプログラミングはみんなで奏でるシンフォニー

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 画像の分割描画について

#83

投稿記事 by softya(ソフト屋) » 10年前

オフトピック
【ゲームプログラマを目指している方へ】
紹介したサイトで書かれているfizzbuzzが出来ないプログラマは一部の業務プログラマなので極端にパターン化されていればfizzbuzzが出来なくても仕事はできます。
ただ、ゲームプログラマでこれが出来ない人は私には考えられません。
これはプログラミングにおける算数の足し算引き算と言えばよいでしょか。それに対してゲームプログラミングは高校数学以上です。つまり、足し算引き算がまともに出来ないのに微分・積分をやろうとしている状況なのでうまく出来るはずがありません。
fizzbuzzを考えたくないなら、そもそもプログラミングしたくないんじゃないかなと思うので、ゲームプログラマを何故したいのか考えたほうが良いかと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 画像の分割描画について

#84

投稿記事 by みけCAT » 10年前

やるかどうかはsamusu0905さんの自由ですが、
AIZU ONLINE JUDGEというサイトにプログラミングの基本を学ぶための問題があるので、紹介しておきます。
http://judge.u-aizu.ac.jp/onlinejudge/course.jsp#lesson
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る