検索結果 1568 件

by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

オフトピック
> 第一に、以上のような1ケタずつ読み込んでいく方法だと、整数10個、アルファベット大文字26文字、小文字26文字で、合計62種類までのデータを読み込む事が出来ます。

この話だと,1データを「数字とアルファベットからなる2文字」にすることで62*62=3844パターンを表現するという世界を目指していることになる.
ファイルに書かれている"11"だの"AA"だのいうのは16進文字列ではないのだろうから,
strtol(p, &p, 16)
だと目指す仕様と違うんじゃないの?
by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

オフトピック
> mapdataを二次元配列から一次元配列にする方法も試しました

こういうことしている時点で,何かが根本的にズレている気がする.

あるロジックがあるデータ構造を用いて動く状態が存在していて,
→当該データ構造のデータを用意する手段として「ファイルから読む」

じゃないのか?
データ構造側をファイル読込処理の都合によって変えちゃうの?
by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

オフトピック
カンマ区切りな内容のファイルを用意するとしたら,それを読込むプログラムの側ではカンマの存在に対処する必要がある.
その処理が自分自身に厳しいかどうかは,やる前にわかるハズ.

にも関わらず,何故カンマ区切りなフォーマットのデータファイルを用いようと思うのか.
わざわざ問題の難易度を自分自身で大きく引き上げて困っているという構図.
「自分が余裕で扱える形でデータを用意しちゃいけない縛り」みたいな営みなのか? 行き詰るのが好きなのか?
by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

オフトピック
こんな単純データだったら,stringstream様のお力で解決してもらえば楽なのでは.
by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

OK.他者に期待.
オフトピック
ソースをどう直したらいいか? という話をする際には,私なら,コードをコピー&ペーストする.

「ここに提示したコードは実際のものとは異なっていて,そりゃあ書き写しのミスもありますよ」とか言われても,
じゃあどれがそのミスで,どれは違うのか?
一体何に注目してどの問題について論じれば良いのか?
第三者には判断材料がないわけだから,正常なやりとり自体が不可能ですな.
(それでも大丈夫なエスパーな人もいるかもだが,私には無理)
by usao
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。
返信数: 54
閲覧数: 8936

Re: メモ帳からカンマ付き文字列のデータの読み込みが出来ません。

=と==の違い,わかってますかね?

FileRead_gets()の戻り値はググった感じだと「長さ」らしいですが,
だとしたら,↓って何の判定なのかわからないですよね.

コード:

FileRead_gets(buf,1023,fp)!='\n'
#方法論がどうの以前に最低限のことはしようぜ
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使って異なる複数の種類の画像を複数描画する方法を教えて下さい。
返信数: 9
閲覧数: 2942

Re: DXライブラリを使って異なる複数の種類の画像を複数描画する方法を教えて下さい。

> 複数の種類の画像を複数描画する これ「だけ」をやるのに必要な要素を考える. 「複数」がネックならば,最初は「1個」から始める. 「一個なら余裕だからやってみるまでもないぜ!」とか構えてても何も進まないなら,実際にやってみて具体化することだ. 1つの画像を描画するのに最低限必要なのは「どこに描画するのか」「何を描画するのか」の2つの情報であろう. 前者は描画位置を示す座標であり,2Dだろうから(x,y)でいいだろう. 後者はDXライブラリの場合だとどうやら「画像のハンドル(?)」とかいう値っぽいので, (x,y,ハンドル)というデータが1セットあれば,1つの画像を描画するのに足るハズだ. よ...
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使って異なる複数の種類の画像を複数描画する方法を教えて下さい。
返信数: 9
閲覧数: 2942

Re: DXライブラリを使って異なる複数の種類の画像を複数描画する方法を教えて下さい。

なぜわざわざ新規トピックにしてるのかわからんけど 話を打ち切って無かったように別に始めるという態度は協力者を減らす方向にしか行かないと思うぞ. で,根本的な間違いは何かっていうと 「自分自身でどう使えばいいのかもわからんデータをわざわざ定義している」という点であろう. 普通,データってのは,自分が使うのに都合が良い形に用意するんだから,それを使って何をどうするのか?ってのは「自明」と言える. 「データはこれなんだけども,どうすればいいかわかりません><」なんていう意味不明な状況には,少なくとも出発点の段階で陥ることにはならないと思うんだよな,常識的に考えて. つまり,どうすれば良いか?っていう...
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 6129

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

くっそ…しくじった.
前記投稿(#16)にて「ch.num」と見えている箇所は

コード:

ch.num[i]
と書いたつもりなので,読み変えてください.
(コレほんと使いにくいなぁ)
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列とfor文を使っているのに画像が一つしか表示されない。
返信数: 25
閲覧数: 6129

Re: 配列とfor文を使っているのに画像が一つしか表示されない。

ch.num とか書いてるけど,このnumの要素数はいくつあるんです? (領域外アクセスしてないかどうか) ch.num の iの値としては '1' と 'A' を用いてるみたいだけども, これって10進数で言えば,49と65になると思うんです.つまり 【ch.num[49] と ch.num[65] の2要素だけに関して何かあれこれ処理する】ということになっていそうに見えるのですが, これって想定通りなんですか? CharaInit()でマップデータ全体に関してループしている際に,'1'や'A'はデータに複数個存在しているから 毎度激しく ch.num の内容を上書きしていると思うけど.
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 単方向リストの交換
返信数: 20
閲覧数: 3921

Re: 単方向リストの交換

オフトピック
なるほど,最後のswap3の方法はinteresting
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 単方向リストの交換
返信数: 20
閲覧数: 3921

Re: 単方向リストの交換

オフトピック
> 面白い問題だと思うんですが、誰もやってみないのでしょうか?

「面白い」とは何か?ってところが個人で違うでしょうし…
言わば「縛りプレイ」的なパズルですよね,コレ.

あえてごちゃごちゃとバグりそうな(あるいはバグっててもすぐにはわからないかもしれないような)処理を考えることを面白いと感じるかどうか.

私は頭使うの嫌いなタイプだから
「え? 配列内の並び替えをインプレースで…?」

「できらぁ!」

結果:バブルソート的なしょぼいコード

とかなっちゃうなぁ.
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 52
閲覧数: 10793

Re: 配列へのポインタ (*a)[10] について

オフトピック
つまり,初心者をポインタで迷子にしないための方法として,以下が考えられる.

【「ポインタは難…」とか「Cの文法が…」とかいう話を展開しているような本なりサイトに出くわした場合,それは読まずに別のを探すこと】
という指針を前もって与える,という方法.

この篩はうまく機能する気がしてならない.
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 52
閲覧数: 10793

Re: 配列へのポインタ (*a)[10] について

オフトピック
【世の中に「ポインタがわからん」という人々が溢れている】
という話が真なのであれば(個人的にはこれ系の話自体が偽なんじゃないかと疑ってるけど)

これからそうなるかもしれない対象たる初心者に向けた文章に
> 「ポインタはアドレスだ」
なんていう ふわっとした フレーズが
時に,「ポインタは難しいぞぉ!」だの「文法がどうのこうのっ!」だのいう刷り込み目的としか思えない謎の呪文句を添えた形で
存在したりしていることがそもそもの元凶なんじゃないか? とか思えてしまう.

(個人の感想です)
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 52
閲覧数: 10793

Re: 配列へのポインタ (*a)[10] について

オフトピック
> 値型と参照型を同列に扱うほうが、どうして受け入れられやすいのか

コレ,世間では受け入れられやすいのか…

少なくとも今現在半径3mの範囲にいる人々(と私)の場合は
「ん? なにそれ? ちょっともう一回言って?」みたいな反応だったんで,かなり異端な集団だったのだなぁ…
by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 52
閲覧数: 10793

Re: 配列へのポインタ (*a)[10] について

既に述べられていることの繰り返しになるが, void foo(int x[10]){ ... } は void foo( int *x ){ ... } と同じであって,"[10]" は何もしてくれない. コードを見た人間が「要素数が10個の配列を渡して欲しいんだろうなぁ」と察することの役には立つかもしれないが, 「うーん,でも今日は要素数が7個の配列を渡してみるか!」というのをコンパイルエラーにできない. 対して,件の"配列へのポインタ"では,コンパイルエラーにできる. "配列へのポインタ"を使う例を考えるならば, 例えば「俺は3次元の座標(ベクトル)を 要素数3の配列 で扱うぜ!」というこ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dアクションゲームにおける重力の実装について
返信数: 3
閲覧数: 2910

Re: 2Dアクションゲームにおける重力の実装について

「キャラクターを位置Aから位置Bに移動させようという際には,その経路を通過しても良いか否かの判定を行い, ルール的に(経路上に地面とか壁とかがあって)位置Bまで移動させてはいけないのであれば, ルール的に妥当な代替位置C(地面や壁の手前)にキャラクターを移動させることにする」 …的な形の処理にすればよいのではないでしょうか. > 地面に底部が当たっているときは重力を付加せずに みたいな手段で「地面に立っているから → 特殊ルールとして今は重力なし → 結果として今の位置に留まる」とするのではなくて, 「放っておいても重力の影響で下に移動しようとする → そこに移動してよいか?(→地面があるから...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 再帰関数
返信数: 8
閲覧数: 1105

Re: 再帰関数

挑戦してみたら素で失敗してワラタ int Buff[8]; //バッファは(何故か)関数の外におく //引数で「何番目を担当するか」を受ける関数を書く. //(nの値も必要だよね) void Func( int nth, //「何番目」だから,一番左を示す値は1である. int n //nの値は8以下の正の整数とのこと ) { //forを1個書いて,担当する位置に置いてある数を順に変えていく for( int i=0; i<n; ++i ) { Buff[nth-1] = i+1; //担当箇所を変える処理 //このfor文の中で再帰呼び出しをすること if( nth < n ) { Fun...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 再帰関数
返信数: 8
閲覧数: 1105

Re: 再帰関数

n重のforがどこに必要になるのかさっぱり謎だし 再帰をどこにどう使うと嬉しいことがあるのかも意味不明すぎるので, そこらへんの話を完全に無視した直感的なコードを示す.もちろん再帰を使ってない. 1mmでも参考になれば. void Test( int n ) { //行バッファ.nは8以下とされているので8個用意すればOKってことで int buff[8] = { 1,1,1,1, 1,1,1,1 }; while( true ) { //行の表示と終了判定 int count_of_n = 0; for( int i=0; i<n; ++i ) { if( buff[i]==n )++cou...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 双方向リストについて
返信数: 3
閲覧数: 627

Re: 双方向リストについて

どうすればも何も,単にそれを実現するだけなら
単に2つのリストの全要素を持つリストを作って,それをソートすりゃ良いであろうことは火を見るよりも明らか.

リスト1:{ 1, 3, 5 }
リスト2:{ 2, 4, 6 }
 ↓てきとーに合体
リスト3:{ 1, 3, 5, 2, 4, 6 }
 ↓ソートする
リスト3:{ 1, 2, 3, 4, 5, 6 }


「てきとーに合体」ではなく,元のリストがソート済みであるという制約条件を利用した合体を行えば
最後のソートが要らないだろうこともまた自明に思える.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 質問です
返信数: 6
閲覧数: 714

Re: 質問です

xがintだから
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: おめでとう❤️
返信数: 2
閲覧数: 658

Re: おめでとう❤️

オフトピック
毎度この調子なんだから,それを誤爆とは呼ばないのでは.
人間なのか機械なのかわからんけど.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

> (2) 最初の64個の配列(二次元配列)が持つ意味や順序が分かりません……。 書いた人じゃないけど,まずここの部分がわからないときつそうなので,参考までに私の解釈を書いてみる. program側の思考処理に > 乱数で2つから1つ という仕様があるために, 64パターンの盤面全てに関して,pragram側の打つ手の候補が2種類ずつ用意されている,ということでしょうね. (1種類しか打つ手がない盤面に関しては { 0,0 } のように,同じものが2つ書かれている) 64パターンの盤面に 0~63 の通し番号を付与(※1)したとき, 例えば,盤面3番の状態でのprogram側が打つ手を決定する...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 個数のわからないものの平均値
返信数: 9
閲覧数: 966

Re: 個数のわからないものの平均値

平均値の算出結果がおかしいのであれば,
平均値の算出処理か,あるいはその算出処理に与えたデータがおかしいであろうことは容易に推測できますよね.
例えば,後者側を怪しむならば,
average()の引数である,aとnの一方あるいは両方の値の妥当性を確認すべきです.
他人に訊く前に,そういうデバッグ作業をご自身でやってみてはいかがでしょうか?
・average()に渡される時点でのnの値は何になるべきですか? → 実際にそうなっていますか?
・a[]の中身には,本当にファイルの内容が正しく読み込めていますか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

オフトピック
プレイヤ側の敗北判定しか用意されていない突き詰められ具合が素敵すぎる
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

で,それはそれとして,コードの現状を見るに,まずは処理構造の大枠側から徐々に作っていく方法を採ってみると良いのではないかと思ったりするのですが,どうでしょうか. 例) 少なくとも,「1ゲーム」分の処理というのは,勝敗が決まるまでループすることになるでしょうから,まずはそのループが存在する大枠を書く. 例えば以下のような. 細部の処理はとりあえず必要な事柄をコメントで書いておいて,後で埋める. int main() { //初期状態の準備 (棒の状態を表す変数の値を全部1にしとくとかそういう事柄) ... //1ゲーム分の処理 while( true ) { //・プレイヤの入力処理 //・入力...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

まず,データの持ち方をちゃんと決めましょう. 6本の棒の状態を表すのに 元々やっていたように a,b,c,d,e,f なる6個の別々の変数を用いるのか, それとも要素数6個の配列を用いるのか. (少なくとも私の感覚では,前者の道は苦行そのものですが) で,決めたならば,強い意志を持ってその決定に即したコードを書きましょう. int StickState[6] = { 1, 1,1, 1,1,1 }; int a,b,c,d,e,f; この2行のうち,どちらかは不要であるハズ. ・(1)(2)および(5):  このあたりの事柄に関しては,私が#7で示したコードが参考になりませんか? ・(3)や(...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

棒が6本だから盤面の種類は 2の6乗(=64)パターンある. 終了状態(棒が1本だけ残っている状態)の6パターンを除外するとしても program側の手番のときに有り得る盤面の種類は58パターン. その全てに対応する出力を列挙したような実装を行うという話…なのかな? まぁ方法はどうあれ,そこの部分が最も書くのが面倒な部分になりそうですし, まずは,program側の思考処理はとりあえずの仮のもの (例えば「現状で倒せる棒のうちのいずれか1本だけを倒すよ」みたいな簡単な処理) を実装して, 「(programが弱いけれども)全体として正しく動く状態」の完成を目指すと良いのではないかと. (それが...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

オフトピック
さくっとできるだろう,と思ったらscanfの改行がバッファに残る問題で無限ループして泣きそうになったでござる.
とりあえずgetchar()で強引に改行を抹殺したが……
まともな対処方法は,きっと詳しい誰かが書いてくれるだろう.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

とりあえずヒント. 「入力した範囲の棒が消されていき,全ての棒を消したら終了」という内容. (うっかりC++だけど,Cとの差は,変数の定義が関数の先頭じゃないとか,bool使ってるくらいなので,まぁ問題にはならないだろう.) //※includeは省略 //RowIndex段目の先頭index //(前の投稿と一緒) int StartIndexOfRow( int RowIndex ) { int ret = 0; for( int i=1; i<=RowIndex; ++i ){ ret += i; } return ret; } //RowIndex段目に存在する棒の個数 int nBa...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

マウスとかチェックボタンとか書いてあったので 何かGUIが存在する世界で作っているのかと思ったのですが, printfやscanfを使うような形態(所謂コンソールアプリ)なのですね. であれば,とりあえず,マウスとかの話はやめてscanfで入力する物を考えると良いかと思います. 単純に,scanfを3回使って > {何段目の,何本目から,何本目まで} を入力させてはいかがでしょうか. で,それはそれとして(?),棒の状態を表す変数が a,b,c,d,e,f という現在の実装だと, そういった入力に対しての処理を実装するのがとても困難になるかと. 複数の棒の状態を個別のa~fで表現するのではなく...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 896

Re: 複数ファイルの平均値

n=0;
を26回回るforブロック内の先頭にでも入れたらどうでしょう.
(というか,「564個」って決まってるならば,数える必要性自体が無いような…?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で「棒消しゲームを作る予定です」
返信数: 35
閲覧数: 4153

Re: C言語で「棒消しゲームを作る予定です」

> ところが、二点間の線引きについては、C++とかの説明はありますが、普通のC言語では見当たりませんでした。 この文章だけでは,何が困り事なのかがちょっとわかりませんが… マウスの操作状況を取得できる状態にあるのならば, 「マウスで引いた線の形」=「マウスボタンを押しから離すまでの間にマウスカーソルが通った座標群(つまり折れ線)」 をデータとして蓄積することは可能かと思います. であれば,折れ線を構成する各線分が各々の「棒」と交わったか否かを判定すれば良いのではないでしょうか. その他の入力方法としては, {何段目の,何本目から,何本目まで}という形で3つの値で入力させれば良いように思います.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 896

Re: 複数ファイルの平均値

とりあえず提示されたコードでは

コード:

fp_out=fopen("aa1.txt","w");
この行が何度も処理されるように見えるので,

> 最初に一回オープンすればよいと考えました。

という考えと矛盾していませんか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 896

Re: 複数ファイルの平均値

結果出力用のファイルに関して,どのタイミングで何回オープンすれば良いと考えていますか?
オフトピック
この質問に限らず,プログラムに関して質問を行う多くの人間が
単に「うまくいきません」とだけ書いて発生している{問題,現象,etc}を意図的にぼかす,
この行動は一体何なのだろう?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: E0020 識別子 "GameScene" が定義されていません
返信数: 4
閲覧数: 753

Re: E0020 識別子 "GameScene" が定義されていません

同じような書き方してる TitleScene や PrepareScene と
同じようにやりゃいいんじゃないかと思いますが.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ソースファイルが開けません
返信数: 6
閲覧数: 745

Re: ソースファイルが開けません

「適当にテスト用のプロジェクトを作り,そこに新しくヘッダファイルを追加する」ことはできますか? 新しいヘッダファイルとして,例えば以下の内容の A.h を追加したとして…… const int TheValue = 1942; これをmain関数があるソースファイルでincludeしたらエラーが起こりますか? //例.細部は違うだろうが. #include "A.h" //A.hをinclude int main() { printf( "%d", TheValue ); //A.h内に書かれているTheValueの値を参照してみる return 0; } ここまでOKなら,A.hの中身を丸ご...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 外部シンボル~~が出て何を言っているのかわかりません
返信数: 23
閲覧数: 1524

Re: 外部シンボル~~が出て何を言っているのかわかりません

オフトピック
実装が書かれたファイルをincludeしようが,
(わかってやってるなら,だけど)「デタラメ」ではないと思うので,「力技」と称した.

課題で「分割コンパイルしなさい」とか指定されている場合にはまずいかな.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: javaでPC向けシューティングを作りたいが・・・
返信数: 7
閲覧数: 1777

Re: javaでPC向けシューティングを作りたいが・・・

オフトピック
CPU見て,一瞬「俺が大学生時代に使ってたPCでも動くようなソフト作るのかよ!?」とか思ったけど
OSと要求メモリ量的に無理な模様w

で,そのOSだと今度はメモリ量1Gってのはきつそうだし,なんか不思議なスペックですね.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の描画でどうしてもわかりません。
返信数: 13
閲覧数: 1475

Re: 画像の描画でどうしてもわかりません。

オフトピック
「そんな当たり前の確認はとっくに済ませてるんだよ!」みたいなことがある場合には,
その旨は述べた方が,他の回答してくれている方々にも参考になると思いますよ.

以上です.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の描画でどうしてもわかりません。
返信数: 13
閲覧数: 1475

Re: 画像の描画でどうしてもわかりません。

重くなるかどうかに関しては (その程度の話ではほとんど差は見られないのではないかと予想しますが) 実測比較してみれば良いのではないでしょうか. なんつーか, MapChip[i][j].x,MapChip[i][j].y なんてデータを「わざわざ用意して参照している」んだから, 「グリッド状に敷き詰めるなら各々のチップの描画位置は i*s と j*s とかで簡単に求まるよね」的な話とは「何かしら異なること」をやってるんでしょ? そこの部分の説明無しに「わかってくれる云々」とかエスパー求めてる姿勢がまず謎すぎる. で,「そこの部分がバグってるかもしれないけどよくわからんから場当たり的な対処方法を...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の描画でどうしてもわかりません。
返信数: 13
閲覧数: 1475

Re: 画像の描画でどうしてもわかりません。

> やはり今回のソース上はなにも問題ないということですよね。。 DXライブラリの詳細はしらないけども, 画像の描画先がどこになってるのかは, MapChip[i][j].x,MapChip[i][j].y こいつら↑の実際の値次第なんだろうから, これらの値を知らない他者がコードだけ見てもその正当性は判断付かない話なのでは……?? で,それはそれとして, 【自分のコードのバグなのか,それともライブラリ側のバグなのか】を調べたいならば, 「自分のコードが悪いかもしれない要素」を可能な限り排した状態のコードで確認をすべきでは? 例えば,2枚の画像を描画するだけのコードを,「座標を直値で」コーディン...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタの読み方
返信数: 4
閲覧数: 610

Re: ポインタの読み方

要素の型がdoubleで要素数が5個な配列を指す用のポインタ型変数aの定義(and/or 宣言) だと思うけど,
どう発音するのかはわからないです>読み方
オフトピック
よくよく考えると,*がない(配列定義)記述でも,どう読み上げるのが正しいのかを知らない.
int a;
なら「いんと えー」とかで多分いけると思うんだけども.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 6206

Re: アナログデータのリアルタイム描画

オフトピック
offtopicにしてる話なので,今の話の流れに無関係であれば気兼ねなく黙認してくださいな.

要は,
何らかのレンダリング処理を自前で書いたとして
そのレンダリング処理に要する計算やらデータアクセス処理やらの実装自体が重い場合,
DirectXだの何だのを持ってこようが,肝心のボトルネック部分が改善されるわけじゃないんだから意味ねぇよな,っていう.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 6206

Re: アナログデータのリアルタイム描画

オフトピック
余計な話でしょうが,
本当に 描画処理が重い ということなのだとしたら
真っ先に考えるべき事柄の1つとしては,
その描画処理部分の実装を改善できないのか?(要はその部分の実装が良ろしくないのでは?)
という方向の話があるかな,とか.

(まぁ,そういう次元の話はもう既にやりつくしているからこそ,DirectXだの何だのを使うことで得られるかもしれない差分量に期待…的な話をしてるんだろうけども.)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 構造体について
返信数: 26
閲覧数: 3296

Re: C言語 構造体について

文字列の【部分一致】で検索するって話でしょ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 構造体について
返信数: 26
閲覧数: 3296

Re: C言語 構造体について

これ以上補足不要だとは思うけど, わからんと言われているforの箇所を日本語で書けば,下のような話でしょう. //5つのデータ全てに関して,それを表示すべきか否かを調べ,表示すべきなら表示する for( int i=0; i<5; ++i ) //5つのデータに関してループ { if( i番目のデータは表示すべきか? ) { i番目のデータを表示する } } べつにforを使わずに,他の方がおっしゃるようにwhileとか使っても実装できるでしょうし, 極端な話(?),データ数が5個だと決め打ちするならば //5つのデータ全てに関して,それを表示すべきか否かを調べ,表示すべきなら表示する if(...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 構造体について
返信数: 26
閲覧数: 3296

Re: C言語 構造体について

> 氏名の一部を入力すると点数を表示する つまり,「入力された氏名の一部に対して,どのデータを表示すべきか?」を判断する必要がある. データは5つあるから, ・最初のデータは表示すべきか? ・2番目のデータは表示すべきか? ・… ・5番目のデータは表示すべきか? の判断を行わねばならない. 言い換えれば, 5つのデータ全てに関して,入力と照らし合わせて,そのデータを表示すべきか否かの判定処理を行う必要がある. 「5つのデータ全てに関してXXXする」というのを実装する手段として,そのコードでは(たまたま)forを用いた,というだけのことでしょう. 例えば,要素数5の配列 a[5] の全ての要素を...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 6
閲覧数: 853

Re: 円と回転四角形(長方形)の当たり判定

わかりやすく絵で説明すると,
下図の,破線より左側の世界と右側の世界とで
「衝突判定」の処理でやることは全く一緒だよね,っていうだけの話.

x-yの世界で処理できるなら,u-vの世界で全く同じことをすればOK.
Fig.png
Fig.png (9.2 KiB) 閲覧数: 765 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 6
閲覧数: 853

Re: 円と回転四角形(長方形)の当たり判定

何かこの話題,以前にもあったような気がしますね.
viewtopic.php?f=83&t=16423
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 円と回転四角形(長方形)の当たり判定
返信数: 6
閲覧数: 853

Re: 円と回転四角形(長方形)の当たり判定

回転してなければ判定できるのでしょうか? →できない場合は,まずそこからやるべきなので,ここではできるのだと想定します. 回転してなければ判定できるのだとして, その処理が何かしらの関数として実装されているとしましょう. 例えば, //長方形と円の当たり判定.当たっているならtrueを返す bool IsCollide( 長方形, 円 ) { ... } みたいな. 回転後の座標系で,↑の関数の引数として必要なデータを表現すれば,この関数を使って判定できますよね. > やはり4隅の座標は求めなければならない感じですか。 「4隅の座標」が必要かどうかは,衝突判定処理がそれを必要とするかどうか,に...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 6206

Re: アナログデータのリアルタイム描画

> 仮に間引く場合ですが、その端末で処理が「遅い」か「早い」かって > 実際に描画処理を走らせる前に判別する方法ってありますか? わかりません. ただ, > 準備中に検証用データを裏で処理させて …的な処理だと,その検証結果と実処理との間にどれだけ差があるのかわからないので(それこそ環境次第な部分もある?)どうなのかなぁ,とか…? 「処理の最初の時点からいきなりうまい具合に動かないと話にならない!」という厳しい(?)話でないならば 実処理中にかかった時間でも計測して動作中に適宜調整される仕組みとかにしてもいいと思うけど… (この話題の解決策としてはずれているからofftopic) 【調整が効く...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 6206

Re: アナログデータのリアルタイム描画

(1)側に関して: > 1秒分のデータ ってのを何回に分けて描画&表示 しているのかわからないけども, 測定周期よりも早くできちゃうのが困る場合には, 都度(測定周期 - かかった時間)だけ描画&表示の進行を待ってやればよいのでは. (2)側に関して: > 作法 なんてものがあるのかすら知りませんが,  【測定者】→(測定データ)→【描画者】→(描画結果)→【表示者】 という3者の間で速度差をどう吸収するか?って話ですよね? ・【描画者】が遅い場合は,前記した通り,描画データを間引くしかないかなー,と思います. ・【表示者】が遅い場合は,【表示者】がビジーな間は【描画者】は同じ画像バッファに描...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 6206

Re: アナログデータのリアルタイム描画

(1)
描画が測定より早い場合に,毎測定ごとにデータ描画して更新するよりも「カクカク」しない描画の仕方って何だろう?

(2)表示が遅れる場合:
まず,(何らかの画像バッファへの?)「描画」が遅いのか,
それとも,描画したものを「表示」するのが遅いのか,どちらなのか?

「描画」が圧倒的に遅いという場合,
どんどん遅れていくのを避けるには
データをてきとーに間引いて描画する的な措置しか思いつかない.

「描画」の速度が問題なのではなく「表示の更新」側が足引っ張るようなら,
「たまったデータを全描画したら→更新」にすれば良い(データ測定が等速ならば,表示遅延が一定になる)ように思うけども.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発に日常的に使っているものは何ですか?
返信数: 35
閲覧数: 4843

Re: ゲーム開発に日常的に使っているものは何ですか?

seruvo さんが書きました:
1年前
質問の話に戻るのですが、DXライブラリでゲームを作りまくることで、ゲームプログラミングの勉強は十二分にできるということですか?

DirectXから学べることとDXライブラリから学べることの違いはあるのですか。
> ゲームプログラミングの勉強

という言葉が含む範囲次第になるのではないかと.

ライブラリ側が受け持つ領域がこの「勉強」の範囲に含まれないならば
この問いへの答えはYesになりそうだし,
逆に,ライブラリ側が受け持ってくれるがためにその使用者が意識(理解)せずに済む事柄が「勉強」の範囲に含まれるようであれば答えはNoになり得るのかも,と.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: タイムスタンプの管理
返信数: 3
閲覧数: 498

Re: タイムスタンプの管理

> 浮動小数での表示は不都合

話がよくわからないけど,固定小数じゃダメなのだろうか?
(「それなりのでかいサイズの整数型」を用いて,その1の位を[μsec]と見なせば)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 3
閲覧数: 696

Re: 課題

「見つけた最大値を都度配列の後ろ側に持ってく」よりも
「見つけた最大値を都度最小値に書き換えてしまう」の方が簡単で良かったかな?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: scanf を簡略化したい
返信数: 12
閲覧数: 1311

Re: scanf を簡略化したい

m3908714035 さんが書きました:
1年前
本題とは少しずれるのですが、cinはiostreamをインクルードしてstd::cin>>s;のように使えますが、
今回提示いただいたコードだと一度IN inと宣言が入ってからin>>s;となっていると思います。
何かコードに工夫をし、IN inの宣言なしにin>>s;と書くことはできるのでしょうか。
単純にオブジェクトを1個作ってその名前を公開しておけば良いのではないかと.
(cinだって,単に cinという名前のグローバルなオブジェクトが存在しているだけでしょうから)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: scanf を簡略化したい
返信数: 12
閲覧数: 1311

Re: scanf を簡略化したい

呼び出し時にいちいちテンプレート型引数を書かなきゃいけないのがめんどくさそう. 【特定の型に関してはscanf()を使いたいが,他の型(? 少なくともstring)に関してはiostream 使う】みたいな話であれば, ↓のような感じにすればどうか. class IN { public: template< class T > IN &operator>>( T &V ){ std::cin >> V; return *this; } template<> IN &operator>>( int &V ){ scanf( "%d", &V ); return *this; } }; // in...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: コードの書き方チェックお願いできますでしょうか。
返信数: 2
閲覧数: 627

Re: コードの書き方チェックお願いできますでしょうか。

どこが > 至らぬ 可能性があると思っているのか,を言わないと,どうしても話がぼんやりすると思います. とりあえず,やりたい内容がそれだけなら(今後,ここからさらに機能が増えていく予定とかが無いなら) 各学生に関する情報を入力した時点で合否は判断付くのだから, 判断材料に使っただけの点数だの欠席回数だのを後生大事に配列に記録しておく必要はなく, 例えば「合格者の学生番号を記録するための配列」が1個あればそれで済むよね,的な. あとは, STUDENT_NUM_MAX は,_で単語を区切っているのに PENALTYSCORE が PENALTY_SCORE じゃないのは何故なのか,とか気になりま...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします
返信数: 6
閲覧数: 1016

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

仕事でもないのに画像認識とかは,やっぱつれぇので,かわりにプレイヤーを2人用意した. プレイヤー1はパーを出しやすいが,対するプレイヤー2はグーを出しにくい. こいつは熱い勝負になりそうだぜ! //じゃんけん用各種 enum HAND{ G=0, C=1, P=2 }; //グー,チョキ,パー enum RESULT{ WIN=0, DRAW=1, LOSE=2 }; inline RESULT Judge( HAND a, HAND b ) //bに対するaの勝敗を判定 { //考えるの面倒だから表引き static const RESULT R[] = { DRAW, WIN, LOSE,...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 3
閲覧数: 696

Re: 課題

まず【10個の整数が与えられたとき,その中の最大値を見つける処理】は作れるものと仮定する. ここでは説明を簡単にするため,以下のような関数として実装されるとしよう. //引数Valuesには要素数がArraySize個の配列の先頭を指定してね. //最大値の要素のindexを返すよ. int IndexOfMaxValue( int *Values, size_t ArraySize ) { ... } さて,これができれば,話は簡単. 入力された10個の整数を,配列に格納し, IndexOfMaxValue( 配列, 10 ); とすれば,10個の整数のうち最大値のindexが得られるのだか...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 4
閲覧数: 640

Re: 課題

by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: float型によるベクトル計算
返信数: 5
閲覧数: 1582

Re: float型によるベクトル計算

マルチポストですかな?
https://teratail.com/questions/161096
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++で画像一枚のRGB値の割合を計算
返信数: 2
閲覧数: 1016

Re: C++で画像一枚のRGB値の割合を計算

「画像」をプログラム内でどんなデータ形式で扱ってるか知りませんが,
各画素の画素値にアクセスする手段はあるんですよね?
 ↓
・ない場合:
 まず問題に取り組むためのスタートラインに立つことが先決です.
・ある場合:
 じゃあ単に数えれば良くね?(問題点はどこにも見当たらない.終了.)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: STGのメニュー文字の作成方法など
返信数: 7
閲覧数: 1813

Re: STGのメニュー文字の作成方法など

PCにOffice系のソフトがあれば
テキストボックス内の文字にある程度の効果をかけられるので
あとはそれをコピーして適当なソフトで画像ファイル化すればどうだろう?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 数値計算・近似式の問題がわかりません。
返信数: 7
閲覧数: 2959

Re: 数値計算・近似式の問題がわかりません。

> 係数を求めるプログラムと3次関数を求めるプログラムは同じということなのでしょうか?

あなたが求めている「係数」というは,一体何の係数なのでしょうか?


> 最小二乗近似のプログラムを作成し

最小二乗の側は解法とかが何か指定されているんでしょうか?
(あるいは「このライブラリ使って」とか何とか指定がありそうなものだが…
 あと,グラフまで自前プログラムで描画しろってことなんだろうか…?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 【急募】課題手伝ってください、
返信数: 2
閲覧数: 2549

Re: 【急募】課題手伝ってください、

> どうすればよろしいのですか

ということですから,
アドバイスが欲しいだけで丸投げではないのかもしれませんよ?(性善説)

とりあえず,課題らしいので期限とかもあるでしょうし,何はともあれ少しでも前に進んでおくのが良策かもしれません.
(1)~(3)のうち,できないやつをすっ飛ばして,できるやつを実装してみるのがいいんじゃないですかね.

例えば(1)ができない場合,とりあえず後回しにして,そこに書いてある通りの内容の配列を用意してしまえば
(2)や(3)には取り組めるわけですよね.
仮に(2)もわからんのだとしても(3)は独立して作れますよね.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 摂氏から華氏への変換方法について
返信数: 2
閲覧数: 1898

Re: 摂氏から華氏への変換方法について

「AしてBしてCしろ」とか言われた場合には,やることを細かい要素{A,B,C}に分解して考える.
で,今回の話を,

・摂氏を受け取り
・華氏を計算し
・(小数点以下2桁まで?)出力する

という3要素に分けたとき,どの要素に問題があるのか?
(何の情報も無いコード示しても何も意味ないので,とりあえずできない箇所を穴埋め状態にでもするとして,できる箇所は書きましょうよ)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: どなたかお知恵をお貸し下さい
返信数: 5
閲覧数: 2213

Re: どなたかお知恵をお貸し下さい

> プレイヤーの半分以上が特殊エリアに重なる状況で進行した場合に
> 特殊エリアに入れるようにしたい。

だったら,「半分以上が重なる」のか否かを判定すればよいのではないでしょうか.
(問題点が何なのかがわからん)

【「半分以上が重なる」=辺の中心位置がエリア内に入る】ということであれば
辺の中央座標に関する判定を行うことを考えればよいのでは.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 回転する短形と四角形の当たり判定について
返信数: 5
閲覧数: 2666

Re: 回転する短形と四角形の当たり判定について

とりあえず点の座標を表すこんなのがあったとして… //2次元ベクトル struct Vec { Vec( double X=0, double Y=0 ) : X(X),Y(Y) {} Vec operator+( const Vec &rhs ) const { return Vec( X+rhs.X, Y+rhs.Y ); } Vec operator-( const Vec &rhs ) const { return Vec( X-rhs.X, Y-rhs.Y ); } void operator*=( double s ){ X*=s; Y*=s; } double Norm() co...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 回転する短形と四角形の当たり判定について
返信数: 5
閲覧数: 2666

Re: 回転する短形と四角形の当たり判定について

分離直線が存在するか否かを調べればよいのでは.
(矩形同士なら4*4の16本の線について調べれば良さそうだけど,計算量が多いかな?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: scanf文を使って近似式の求め方
返信数: 4
閲覧数: 1310

Re: scanf文を使って近似式の求め方

オフトピック
円周率の近似と言えば,これでしょう
printf( "3" );
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最長パス長を求める
返信数: 3
閲覧数: 799

Re: 最長パス長を求める

課題の丸投げですか?

とりあえず全てのパスを列挙すればよいのではないでしょうか.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

オフトピック
折れ線から単純にスプライン計算すると激しく暴れる
→制御点の数を増やしつつ,形も修正する感じで…
→つまり折れ線を再分割しつつ形もいい感じに丸めていけばどうの
→あーだこーだ方法を考えて実装して動かしたところ…

 *Bezier を再発明している!*

=終=
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: キーボードを同時に押した場合の速度の変更について
返信数: 2
閲覧数: 618

Re: キーボードを同時に押した場合の速度の変更について

とりあえず同時押しの判定が矛盾していると思う.
(「e.KeyCharの値はaであるが,同時にdでもある」なんてことはない)
何が起こっているのかを把握するために
KeyPressedイベントハンドラで,e.KeyCharの値をどこかに表示してみてはどうでしょうか.

あるキーが押されている期間 を知るためには
「キーを押したとき」と「キーを離したとき」の両方のイベントを用いて判断する必要があるのではないでしょうか.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

元の折れ線データの各中間ノードにおいて4点(カーブ外側3点,内側1点)を算出することをやってみた.
Fig1.png
図1
Fig1.png (7.15 KiB) 閲覧数: 1974 回
計算内容は長々と文章で書くより図を見た方が早いかと.
* 赤青2本の矢印は元の折れ線のエッジの法線
* 緑の線はその2本の矢印が成す角を2等分する線
SidePoly.png
算出結果
SidePoly.png (6.25 KiB) 閲覧数: 1974 回
* カーブ内側の点(緑線の下端)は,図2のオレンジ色の直角三角形で二重線で示した角のcosに関する式を立てればおk.
 (このcos値は矢印と緑線の内積から算出可能)
Fig2.png
図2
Fig2.png (8.98 KiB) 閲覧数: 1974 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

「アルゴリズム」という件名なので,一応,プランB(画像処理なアプローチ)でやった事柄も記しておく. (B1)初めに,与えられた折れ線をスプラインで曲線的な形に加工したが,  これはMustではない.元の折れ線のままでもいい. (B2)「道路の絵」を描くのに十分な広さの画像領域を準備し,テキトーな背景色で塗りつぶしておく.  (B1)の折れ線上の全ての位置(実際は適当な間隔でサンプリングした位置で良いが)に関して,  その位置を中心とし直径を(道の幅)とした塗りつぶし円を描画する.  (要は,めちゃくちゃ太いペンで折れ線を描いた) (B3)カーブ内側の外周形状を丸めるために,  (B2)の絵を(...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

スプラインは,数式が簡単で実装容易なCatmull-Romスプラインを使いました.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

カーブが極端にきつい個所の内側はどうなるのが正解なのだろう?
HairpinCurve.png
滑らかさを求めるとすごく幅広になるよね
HairpinCurve.png (6.42 KiB) 閲覧数: 4545 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

ヒャッハー! プランBだー!
画像処理していいなら,なんとなく丸められるよね.
ImgProc.png
OpenCVでおk
ImgProc.png (10.15 KiB) 閲覧数: 4547 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

サイト重すぎの影響か?
文章と添付ファイルが中途半端にしか投稿されてないやん.なんだこれ.

ダメなパターンはこうなる.
BadPtn.png
BadPtn.png (10.27 KiB) 閲覧数: 4550 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

元の折れ線データ(緑)からスプライン曲線(赤)作って,
それを適当に両側に移動(青と紫)…
添付ファイル GoodPtn.png がありません
…とか思ってたら,こういうことかー!
GoodPtn.png
一見,まぁ良さそうだが…
GoodPtn.png (10.28 KiB) 閲覧数: 4552 回
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: opencvのsobelフィルタについて
返信数: 13
閲覧数: 1805

Re: opencvのsobelフィルタについて

オフトピック
その昔,連続関数に関して導出された処理アルゴリズムを離散データに転用しようとした際に
「微分値」の解決にSobelフィルタを脳死的に用いちゃった奴がいたんですよ……
(わたしです^^)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

オフトピック
絵を描いてデータ化~ という話はあれですよ,
画像処理的手段で境界線の座標列を取得すればいいよね的な話.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: opencvのsobelフィルタについて
返信数: 13
閲覧数: 1805

Re: opencvのsobelフィルタについて

>以下のページで「微分画像」があります。 微分画像という単語は一般的ですが,今回,「微分値」を求むことが目的とのことであるため, Sobelフィルタで得られた(絶対値が不明瞭な)値が,欲しい「微分値」とイコールなのか否か,という点を微妙に危惧しただけです. (Sobelフィルタカーネルを畳み込んだ結果の値が,数学で言うところの ∂f(x,y)/∂x とイコールではないですよね. 細かいことを言えば「原画をガウシアンでぼかしたデータに対する,幅を持った中央差分」的な演算が,目的に見合うのか否か,という話も?) >例外,エラー atのテンプレート型引数が間違っているように見えます. その書き方だと...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: opencvのsobelフィルタについて
返信数: 13
閲覧数: 1805

Re: opencvのsobelフィルタについて

>RGB別のレイヤーで見るとBが一番目立たなくて、RかGが多い場合が多いです。

えっと……だから何?

画像データ中のどの信号がどれだけ重要なのかは
{入力画像次第,質問者の用途次第}ではないのでしょうか.

(というか,そもそも【OpenCVのsobelフィルタについて】の質問なんだけど)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: opencvのsobelフィルタについて
返信数: 13
閲覧数: 1805

Re: opencvのsobelフィルタについて

オフトピック
余計な心配かもしれませんけど…

> 各画素での一次微分値をsobelで求めるのが目的

欲しい「微分値」って何ですか? というのを
しっかり考えて(=定義して)おかないと意味不明なことになりそうな気もしますが……

・そもそも,画像データの「微分」って何ですか?
・Sobel()を使うとして,カーネルサイズ引数とかを変えれば当然出力値も変わるけど?

とか,そういうあたりの話は用途上大丈夫なのだろうか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: opencvのsobelフィルタについて
返信数: 13
閲覧数: 1805

Re: opencvのsobelフィルタについて

(Sobelフィルタって何ですか? 的な意味くらいはググって下さい) > 微分画像の各画素値の取得などは出来るのでしょうか? OpenCVを使っているなら,そもそもSobel()には計算結果受取用のバッファを渡すハズです. そのバッファの型から,アクセス手段は自明ではないでしょうか. > 何の微分値が出るのでしょうか?RGBでしょうか? それは,入力する画像次第でしょう. (そもそも計算を行っている箇所(Sobel()の内部)では,入力されたデータがRGBなのか何なのかはわからないですよね.単なる値の塊ですから.) 例えば,グレースケール画像を入力したなら,出力はそのグレー値に関する微分値です...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

データの作成方法がどんな手段でも良いなら,最も楽な方法の1つは
「幅Wの線」を絵として描画してそこからデータ化すれば良いかと.
(カーブ形状が定まれば,そのカーブ上の全点において,直径Wの塗りつぶし円を描画すればいい)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 5613

Re: 太線の描画アルゴリズム

(1)
>幅W
を満たすような折れ線のペアを作る.
手っ取り早い方法としては,
元々与えられた折れ線の頂点群を「各頂点位置における折れ線の法線方向に」W/2だけ移動させたデータを作ればいい.

(2)
できた2つの折れ線データを適当にスプラインとかで曲線化する.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリの3D図形の回転
返信数: 4
閲覧数: 880

Re: Dxライブラリの3D図形の回転

オフトピック
DXライブラリというのを使ったことないので,
DrawCube3Dという関数の描画に効く回転手段があるのかどうか知りませんが……

三角形とか四角形とかいう単位でポリゴンを表示するための関数くらいはきっと存在するんじゃないかと思うので,
DrawCube3Dなる関数を使うのがmustでないならば,
ポリゴンN個で箱を構成してやるようにすれば,あとは自由に変形なりしてやれば良いのではないかと.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 7304

Re: 2Dの衝突判定がキッチリと出来ない、、

>「PLAYERが下方向に進んでいる時の先の障害物調べる」処理

に限定した場合なら…

playerをある移動量だけ下方向に移動させた場合に
その移動先におけるplayerの当たり判定が図で白矩形で表される範囲であるとき,
図で赤くなっているマスのうちの最下段の4マスに関してのみ,それらが壁であるか否かの判定を行えばよい

…という話.
(この場合なら,Topの算出は不要で,{Bottom,Left,Right}だけ求めればいい)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 7304

Re: 2Dの衝突判定がキッチリと出来ない、、

> ソースを見せるのに抵抗があるのでしたら、文章でも流れ図的なものでもいいんで > 具体的な説明お願いできませんか? 具体的… ざっくりこの程度の話をしているのですが,不足がある感じですか? (下記コード例は,下方向に移動したときの話に限定せずに,"player"の当たり判定矩形全域に関する形) //マップチップのサイズ[pixel] const int MAP_CHIP_PIXEL_SIZE = 16; //pixel座標から,マップindex座標への変換 // //ただし,素の計算結果のindex値が,マップ配列領域外になる場合には, //有効範囲ぎりぎりの値に修正した結果の値を返す. /...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 7304

Re: 2Dの衝突判定がキッチリと出来ない、、

念のため補足しておくと, 私が書いているのは, >組み立て方 という側の話題に関する事柄のつもりで,質問者のコードが直面している問題への直接の答えではない. だから, 「別に質問者の方法はダメだからこうしろ」とか言っているわけじゃない.そこは誤解なきよう. 質問者のゴールは,質問者のコードのデバッグにあるハズ. > 最初からソースに対するそれくらいの議論、ないしは建設的な回答が頂ければな、 納得できない話かもしれないけれども, その議論自体が,解決のために不要かもしれない んですよね. 外界の人間がどこまで内容に突っ込まなきゃいけないのか,っていう程度が,外界の人間には最初からはわからない. ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 7304

Re: 2Dの衝突判定がキッチリと出来ない、、

//調べるべき配列indexの両端を求む const int x_Left = PixelToArrayIndex( playerの当たり判定の左端pixel座標 ); const int x_Right = PixelToArrayIndex( playerの当たり判定の右端pixel座標 ); //調べるべき全配列要素について調査 for( int x=x_Left; x<=x_Right; ++x ) { //配列indexがxの箇所について判定 } この疑似コードにおけるxというのは, 質問者のコードにおいてfor文内で算出しているxに対応している. for内の //配列indexが...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 7304

Re: 2Dの衝突判定がキッチリと出来ない、、

> 組み立て方 とかいう話に相当するかどうかわかりませんけども, 今回の当たり判定の処理というのは 「移動先の当たり判定矩形の底辺を形成する全ての画素について,その画素が所属するマス(配列要素)を調べる」 を行うことに相当すると思われ, だったらそれをその通りに書くのが最も手っ取り早い. 素直にfor文で書いたらpixel座標についてのループになる. 「全ての画素」についてループを回すのは明らかに無駄だと思うならば,forのstep量を適切に増やせばよく, その際に注意すべき事柄は,うっかり最後の座標がチェック対象から外れないようにすることくらいか. さて,(予想通りの無風状態だが) > 組...

詳細検索ページへ移動する