検索結果 1558 件

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

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

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

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

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

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

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

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

Re: ポインタの読み方

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Re: 課題

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

Re: scanf を簡略化したい

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

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
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: コードの書き方チェックお願いできますでしょうか。
返信数: 2
閲覧数: 386

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

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

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
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 3
閲覧数: 453

Re: 課題

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

Re: 課題

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 回転する短形と四角形の当たり判定について
返信数: 5
閲覧数: 2416

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

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

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

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

Re: 最長パス長を求める

課題の丸投げですか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

えっと……だから何?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

に限定した場合なら…

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

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

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

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

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

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

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
閲覧数: 5770

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

> 組み立て方 とかいう話に相当するかどうかわかりませんけども, 今回の当たり判定の処理というのは 「移動先の当たり判定矩形の底辺を形成する全ての画素について,その画素が所属するマス(配列要素)を調べる」 を行うことに相当すると思われ, だったらそれをその通りに書くのが最も手っ取り早い. 素直にfor文で書いたらpixel座標についてのループになる. 「全ての画素」についてループを回すのは明らかに無駄だと思うならば,forのstep量を適切に増やせばよく, その際に注意すべき事柄は,うっかり最後の座標がチェック対象から外れないようにすることくらいか. さて,(予想通りの無風状態だが) > 組...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++で大文字小文字を区別しない置き換え+α
返信数: 6
閲覧数: 847

Re: C++で大文字小文字を区別しない置き換え+α

わざわざ変数WordSizeがあるんだから

offset = FoundPos + WordUpper.size();
 ↓
offset = FoundPos + WordSize;

ですね.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++で大文字小文字を区別しない置き換え+α
返信数: 6
閲覧数: 847

Re: C++で大文字小文字を区別しない置き換え+α

置き換える場所を探す作業は,大文字(あるいは小文字)の世界で行い, 置き換えは作業は元の文字列をベースにして行えばよいのではないでしょうか. (雰囲気コード) //引数を全て大文字化した文字列を返す inline std::string ToUpper( const std::string &Src ) { std::string Ret = Src; std::transform( std::begin(Ret), std::end(Ret), std::begin(Ret), toupper ); return Ret; } //Srcの中で,BadWordの部分を '*'に置き換える. ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでC++を用いた3Dゲームのジャンプ処理について
返信数: 2
閲覧数: 444

Re: DirectXでC++を用いた3Dゲームのジャンプ処理について

せめて関数の単位の形でコードを提示できませんか.
その抜粋の仕方だと,最初の3行と,以降の条件分岐の処理の関係性が不明です.

少なくとも

コード:

void SumFunction()
{
  //ここに提示コードまるごと
}
みたいな形ではないのですよね?

で,それはそれとして,
「playerPos.yを変化させる処理が走るには,条件( playerPos.y>0 )を満たす必要がある」という点が
「鶏or卵」みたいな状態になっていたりしませんか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語での三角形の面積の求め方
返信数: 7
閲覧数: 1700

Re: c言語での三角形の面積の求め方

> 絶対値をif文で処理する方法が分からなく

・絶対値を計算すること
・計算した絶対値を用いた条件文

の2つに分けたら,少しは見通しが良くなったりしますかね.

コード:

//例:
//aとbの差が10以下なら何かする
//

//「aとbの差(絶対値)」を求め,一旦,その値を変数に格納する
float TheAbs = fabs( a - b );  //※標準ライブラリを使う
//「aとbの差(絶対値)」が10以下なら…
if( TheAbs <= 10 )
{ 何かする }

> なぜかエラーが出るので;をうっています。。。。

なんつーかもう,そういう姿勢がダメ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

少ない情報からない頭で考えてみるに、複数の壁があるときにおかしくなるということを考えると、 そもそも当たり判定の判定先が一つなのが奇妙に感じます。 もはや無意味だとは思いまが,一応…… 質問者のコードでは, 判定先が一つ ということはないです. forの奇怪な繰り返し条件により,判定箇所(x)を算出するループが最低2回は回ることが保証されているので, あとは,この繰り返し内で,iの値毎に算出されるxの値が異なれば,複数の箇所が判定先になる.  ↓ つまり,このコードで真っ先に疑うところは, 【iによって変動するxの算出具合がおかしい】のだろうということ. (だから,結果として判定することにな...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

さて,もう見てないっぽいけども,もうちょっと回答っぽい雰囲気のことを書くならば…… この当たり判定コードで算出される xの値は連続した値を取ることが期待されるハズです. (そうじゃないと判定が「歯抜け」になってしまうから) 例えば, PLAYERposX = 1 PLAYER横幅 = 33 の場合を考えてみます.暗算で. forループは i={0,1,2} で3回まわるでしょう. i=0のとき,最初のifの条件に合致するので,xは0です. i=1のとき,elseブロックの処理により,xは0です. i=2のとき,真ん中のelse ifの条件を満たし,xは2です. この暗算が合っていれば,x=1に...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

全く役にも立たない無駄話だが, > 正面だけの要素を割り出し うまく動かない場合には まずこういう枝葉末節の高速化の工夫みたいな要素をやめて, 素直に"player"の当たり判定の形状全体に関して行ってみればどうか,とか思うわけ. というか,本当に碁盤のマスの個数がたかだか16x16しかないのであれば 調べるべき配列要素を全く絞り込むことなく, 「壁」である全N個( N <= 16x16 )に関して毎度総当たりで調べても,問題がないんじゃ?とか思われる. 以下は本件とも無関係なさらなる無駄話であるが, まずは「効率はともかくシンプルでわかりやすくて妥当な結果が得られる」方法 から初めて, そ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

オフトピック
> 処理の組み立て方

その塊コードじゃらちが明かない(から質問してるんでしょ?)なら
要素を細分化して,各処理の信頼性を確保した上で組み立てろ,というのは
「処理の組み立て方」のアドバイスには当たらないのか.

> 丸投げに感じました

これ,丸投げしている本人が言うのか.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

>ちなみに、当たり判定を描画して、なんて >やってますから。 >やってて、解決しないから相談してるわけで。 つまり,その描画結果を観測してみた結果として, 【問題が発生する状況下において 当たり判定と重なる配列要素全てが的確に列挙されていることと, それらのうちのいくつかが壁であるという妥当な判定結果が生成されていること までを確認できている】 という主張ですよね. (要するに,このとき,「"player"は壁に当たっている」という結果が得られている,と.) であれば 【問題の原因は「当たり判定」の処理ではない】 と結論づけられるのであって, あたなたの言っている > 私の記載したソース(考え...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

んー,だから,あなたの場合において調べるべき事柄を描画して見ましょうよ. playerが上に進む場合は云々~の結果として そのplayerの移動先に関して壁とぶつかるかどうかを判定するために「配列のどこどこの要素を調べることになったのか」という結果に不安があるなら,その結果を可視化してみればどうですか. おそらく,配列の1要素が表示上は16x16[pixel]の領域に相当するんだろうから, "player"の当たり判定領域と,調べることになった配列要素群に相当する領域とを描画すれば 「調べるべき配列要素を列挙する処理」がまともに動いているかどうかわかるでしょ. 何なら,「壁に当たる」と判定され...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#む? 貼ったコード内の改行がいくつか失われた模様
オフトピック
プロジェクトの設定を「マルチバイト文字セットを使う」側にして
「文字列をcharの配列で表す」という世界でやるという選択肢だってありだと思うけど,いかんのかな.
OpenCV使ってるとファイル名とかにconst char*を求められるから,そうすることが多いんだけど.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

(1)VisualStudioでWin32プロジェクトを新規に作る → ビルドするとウィンドウが出るコードが生成される (2)てきとーに外部変数に wchar_t WStr[100]; とか追加 (3)_tWinMain()のど頭に以下を記述 { setlocale(LC_ALL, ""); FILE *fp = fopen( "Test.txt", "r" ); char Buff[100]; fgets( Buff, 100, fp ); mbstowcs(WStr, Buff, 100); fclose( fp ); } (4)ファイル Test.txt は メモ帳 でANSIで保存.内...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
これは完全に善意のアドバイス.

他の場でこの内容の質問を行う際には,
「答えが欲しいのであって,答えにたどり着くための方法を教えてもらいたいわけではない」旨を最初に断った方がよい.
(個人的な偏見(?)では,プログラム系の質問では,このような場合にはデバッグ方法に関する回答がなされる率が高いので,同じことになることが危惧される)

また,同一の内容を複数の個所で質問すると
「マルチポスト」とだけ指摘されて終わってしまうことになりがちなので,
ここのURLを提示して「別の箇所で質問したけども,らちがあかなかった」旨を述べた方がよい.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

そのような考えをお持ちなのであれば, 自身のコードを提示する時点で,コードの各所に関して「何でこのように書いているのか」の理由を明記した方がよろしいのでは? あなたのコードを見た人が > なんで mbstowcs が 3つもあるの? とかならないように. また,掲示板を見る他の初心者のことまで気に掛けるのであれば, 回答に不明瞭な点がある場合には,推測とか察するとかで終わらせずに, その時々でその回答をした相手に不明瞭な点を問うとよいのでは. (あなたの推測が正しくて話がそのまますんなり終わってしまったとしたら,まさにあなたが危惧する「初心者に理解できないログ」だけが残る事態になるのだから) ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

要するに,
【自分ではデバッグ作業とか一切やりたくないんだからお前ら勝手にバグ見つけて俺に教えやがれ.無料で.】
という主張ですよね.

理由を見つける方法の話とかいらねーから,最初から理由だけをよこせ と.
じゃあ,他者はあなたにその理由を教えるために,どうやってその理由を見つけるんだろうね?
バグの理由を見つけるのには一般に絞り込み作業が必要だと思う.
理由だけをよこせ という主張は,他人に絞り込み作業をやらせていることに他ならないと思うんだが.
でもそれは相手が勝手にやったことだ!と.

ぐだぐだ言っているけど,ただのクレクレ君ですやん.くだらねぇ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5770

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

オフトピック
どこをミスっているのかがわからないのは,処理を大きい塊で書いているからでは.
やるべき事柄をもっと小さい要素に分解して見てはどうでしょうか.
例えば,

・何もなく移動できた場合の,"PLAYER"の当たり判定(ここではPixel座標系(?)における矩形範囲か)を算出する処理
・Pixel座標系における矩形が与えられたとき,この矩形を包括するのに必要なマップのマスを列挙する処理

といった基本処理を書いて,それぞれをちゃんとテストする.
そうすれば,処理のどこの段階にミスがあるのかを絞り込みやすくなる.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
> CSVファイル読み取りなどの仕事でも使う機会の多いコードの解説サイトとか

個人的には,「C言語でCSV読む」機会とかまず存在しない感だが……

仮に,世間一般に於いてはそのような機会がすこぶる多いのだとしても,
「よーし,CSVファイル読んじゃうぞー」となった時点でやるべきことは明らかだし,何か特別難しいアルゴリズムとかが必要な話でもないので,解説に値する事柄が乏しい題材なんじゃないかな.
(Stateパターンの話で例としてCSV読込を取り上げているものは見かけたことはある)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4525

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#14の言い回しは,あれっすよ.TV番組ネタ. そもそもプログラマは教育者じゃないし,ましてボランティアで教育活動をすること求められる筋合いは無いんじゃないかなぁ. (何か,東京オリンピック的な考えですね.) まぁそれはそれとして…… 苦言的な(?)ことを言えば, ステップ実行という調査手段が得られたなら 「TextOutの出力結果を見て異常だったら,真っ先にTextOut時点でのデータの中身をチェックするっしょ」 というのは,なんというか,一般に期待される事柄だとは思うのですよね. (そして,当然ながら,中身がおかしいならばその原因追及を行うことも) 要するに, > 変数の値の変化を丁寧に見...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 934

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

奇遇ですね.私もです.

この様子だと,素人解釈は邪魔でしょうし,
計算グラフなるものを使う分野の専門家が現れるのを待つしかないですね.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 934

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

たしかに「計算グラフ」でググるとそれっぽい情報は見つかるが,
ここであなたが求めている
> 『計算グラフ』的なコーディングの仕方
っていうのは,一体どういうものを想定しているのか,何かもうちょっと具体性を持った事柄を言えないのですか?

例えば,各々の演算子を全てstd::unary_functionやstd::binary_functionのようなファンクタで実装したならば
> 『計算グラフ』的
なる事柄の要件を満たすのですか?

コード:

std::cout << cos(x)*y + log(y) * x
と素直に実装したならば,これは
> 非『計算グラフ』的
に該当するのですか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 関数に配列のアドレスを渡すという考え
返信数: 13
閲覧数: 921

Re: 関数に配列のアドレスを渡すという考え

後半の方は何をおっしゃっておられるのかよくわかりませんが… void func(int arg[]){ ... } は void func( int *arg ){ ... } と同じ. 関数func内の arg[0] = 10; は *( arg + 0 ) = 10; と同じ. func( a ); なる呼び出しは, func( &( a[0] ) ); と同じ. 纏めると, void func( int *arg ) { *( arg + 0 ) = 10; } int main() { int a[] = { 0,1,2,3,4 }; func( &( a[0] ) ); } といった...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのTextOutで変数を表示する方法が分かりません
返信数: 13
閲覧数: 1389

Re: Win32APIのTextOutで変数を表示する方法が分かりません

オフトピック
stringstreamとかじゃいかんのだろうか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい
返信数: 7
閲覧数: 778

Re: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい

オフトピック
暗号化してどうの…といっている時点で,少なくともユーザがデータを差し替えすることは考慮していないだろうし,
そのデータを(配布時点においても)外部ファイルからの読込にしておく意味がどれだけあるのか?

…とか考えると,
CSVのような簡単な構造のデータであれば,
ソースコード化してしまうという手もあるような気がする.
(exeと切り離しておきたいならDLLにでもしてしまえば)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体が意味をなしていない…
返信数: 7
閲覧数: 495

Re: 構造体が意味をなしていない…

あるファイルに(graph.hかな)に
ch_t って突然書いてみたら,
コンパイラに「ch_t ってのは何だよ? しらねーよ」と言われた,という感じですか.

> <struct.h>
というヘッダファイルを一体何のために書いたのか? どう使うつもりなのか?
というあたりを詳しく説明できませんか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 594

Re: 乱数発生のアルゴリズム

任意の分布を指定できるものとなると難しそうですね.
(私が書いてるような方法論だと,確率密度関数そのものじゃなくて,累積分布を指定してもらわないとダメな形になりそうですね…)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 594

Re: 乱数発生のアルゴリズム

実際の実装というのはわかりませんが, C++のdistribution系のソースを見るとかできれば何かわかるのかも?? 自分が思いつく方法としては, ある特定の分布を対象にした実装をするのであれば,積分区間を解くには 「例えばある程度の荒さのヒストグラム的なものを用意しておいて,そこから初期値を決定し,  後はNewton法みたいなのを使ってたかだか数回iteration計算すれば十分」とかなんかそんな感じのを試すかも? (この時点でもう既に遅いという話もありそうですが…) 分布が2次元でも,1次元の問題×2に分割するんじゃないでしょうか. (2次元の分布をスライスした断面図の面積を確率とする...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で迷路の作成がわかりません
返信数: 2
閲覧数: 429

Re: c言語で迷路の作成がわかりません

> 動かす物体
が,動こうとする予定先の格子をチェックし,
移動不可能な格子なのであれば物体を動かさなければ良いのではないでしょうか.

 移動予定先 = 現在位置 + 移動量

という計算が自然かと思うのですが,この辺の事柄に関して
keyborad関数内の変数i,jの意味が不明なので,そこを見なすとよいかもしれません.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 594

Re: 乱数発生のアルゴリズム

> 任意の(指定した)分布p(x,y)から乱数を発生する
…の意味がよくわりませんが,
何らかの偏りがある乱数をつくりたいという話でしょうか.

であれば,素人考えでは…
0~1の範囲の一様乱数Xを(標準のrandとかで)得られるとき,
確率密度関数の積分値がXになるような積分区間を解いて,その区間値を乱数の結果とすればどうかな,と.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 連立方程式を解くプログラムを多元線形連立方程式にするには
返信数: 20
閲覧数: 3719

Re: 連立方程式を解くプログラムを多元線形連立方程式にするには

(同一人物なのか,たまたまタイムリーに並列的に存在しただけなのか定かではないですが)
「for」に関してこちらのトピック等を参考にすべきでしょう.
viewtopic.php?f=3&t=20298
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ビンゴ【初心者です】
返信数: 9
閲覧数: 752

Re: ビンゴ【初心者です】

・処理を必要な回数だけ行うようにしてみてはどうでしょう.  例えば,  穴をあける とか 斜め方向のビンゴ判定 とか  何度も繰り返す必要はないですよね.  ビンゴの判定自体,穴が開かなければやる必要ないですし. ・途中で止める方法が無いように見えます.ビンゴになるまで終われません.  例えば負の値を入力したら中止とか,そういうのがあってもよいのでは. ・あとは初期の表作成の方法の工夫とかですかね.  現在の方法だと,運が悪いと永久に終わらないかもしれない(!)ですよね.  所定の手順で必ず完了するような方法にしてみてはどうでしょう. ・動作面ではないですが,変数名が意味不明なのも改善したいと...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

DeleteObjectを無闇に入れるのではなく,やるべきタイミングで必要なだけやりましょう.

DCに選択されているオブジェクトは削除できないはずなので,
DeleteObjectで削除するには,先に,DCに別のオブジェクトをSelectObjectして,削除したいオブジェクトの選択解除を行う必要があったと思います.
そのために,一般にはSelectObjectの戻り値を覚えておいて,最後にそれを選択し直す,ということを行います.
(この辺はGDIを使っているコード例を検索とかすれば見つかるはず)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

2重ループ内だけ見ても70回LoadImageが走るわけですが,こういうことをするなら
その分(70回)のDeleteObjectが必要になりますよね.
そこらへんのところは大丈夫な感じですか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

ものすごーく雑なイメージをコードっぽく書くとこんな. //デバイスコンテキストの雑なイメージ struct DC { HBITMAP m_hBmp; HPEN m_hPen; ... }; //DCへBitmapを指定する関数 HBITMAP SelectObject( DC *hDC, HBITMAP hBmp ) { HBITMAP hOldBMP = hDC->m_hBmp; hDC->m_hBmp = hBmp; return hOldBMP; //直前に指定されていたBitmapのハンドルを返す } //描画関数 void Ellipe( DC *hDC, ... ) { hDC->...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

> SelectObjectでは、画像サイズを採取するので

「採取する」の意味合いがよくわかりませんが……

SelectObject(hCDC, hbmp);
は,
hCDCを介して(今後)操作する画像領域はhbmpですよ,っていう指定をしている.

以降,Ellipse( hCDC, ...) とかやれば,hbmp(が指すBitmap)に楕円が描かれるし,
BitBlt( hDstDC, ..., hCDC, ... ) とすれば,hbmpの内容を,hDstDC(を介して操作する対象Bitmap)に転送する.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 計算するプログラムを別の表現で表したい
返信数: 2
閲覧数: 1043

Re: 計算するプログラムを別の表現で表したい

この人,他所でも同様の話を延々とやってるけど,何か得るものがあったんでしょうかね? 「方程式」を,CやC++ではこの人のコードみたく(a *x1*x1 + b * x1 + c == 32 とかいう形で)書くことができないから 配列を使うことで表現する,そのことが何でそんなに気に入らないのか理解できないのですよね. (係数群を配列に格納したとして,そのコード内においてはそのデータが「方程式」として扱われるなら,何の不自由もないと思うのだが.) そして今度は繰り返しアルゴリズムも嫌だと. > Newton法など の数値計算アルゴリズムを実装する際には,一般に,iteration回数に制限をかけら...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

「バックバッファ(裏画面)に描画して,その内容をフロントバッファに(1回のBitBltで)転送する」をしたいのですよね. であれば, バックバッファの画像領域サイズはフロントバッファ側のサイズと同じサイズで用意する必要があると思うのですが. バックバッファ用hCDCの作り立ての時点: > hCDC = CreateCompatibleDC(hdc); では,hCDCで操作できる画像領域というのは1x1のモノクロ画像になっているので,これでは用途に適さないから, (1)フロントバッファ側と同じサイズのBitmapを作成して (2)hCDCにSelectObjectでそのBitmapを指定する 必...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1753

Re: Win32APIでの画像のダブルバッファが分からない

hCDCにSelectObjectで指定されている画像は mapchip_grass.bmp 由来で,サイズがきっと32x32.
32x32しかないものをhdcに転送したならば,チップ1個(32x32サイズ)だけ表示されるのでは.

(本題ではないですが,ループ内で読み込んでいる画像が激しくリークしていそうな予感)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトに関する変数の初期化について
返信数: 4
閲覧数: 710

Re: オブジェクトに関する変数の初期化について

「初期化」を行うのは,それをする理由があり,初期化を行うタイミングにも理由がある.

> 初期化してないオブジェクト
という物(状態)を{わざわざ,あえて,etc}作っているなら,そこにはそれなりの理由があるハズ.

> 初期化系の関数
なんてものを作って,そこで初期化処理をまとめているのにも,やはり理由がハズ.


> 私(使い手)次第
という言葉の中に,しっかりと理由が入っていれば良いのではないでしょうか.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトに関する変数の初期化について
返信数: 4
閲覧数: 710

Re: オブジェクトに関する変数の初期化について

…なので,

>問題ないのでしょうか

に関しては,あなたが「初期化」する対象の性質や使われ方に依存する話.
問題が発生していないなら,問題ないのかもしれないし,問題が表面化してないだけで存在はするのかもしれない.

例えになるかどうかわかりませんが,
下記の単純なコード例で,bの未初期化が問題となるのか否かは,以降のコードでのbの使われ方次第でしょう.

コード:

int main()
{
  int a = 10;
  int b;  //←初期化(初期値の明示的な指定)してないけど,いいの??
  ...
  aやbを使った何らかの処理
  ...
}

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