検索結果 1881 件

by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 3
閲覧数: 2310

Re: 課題

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

Re: scanf を簡略化したい

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

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

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

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

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

Re: 課題

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

Re: 課題

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Re: 最長パス長を求める

課題の丸投げですか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

えっと……だから何?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

に限定した場合なら…

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

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

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

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

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

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 25402

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

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

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

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

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

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでC++を用いた3Dゲームのジャンプ処理について
返信数: 2
閲覧数: 2656

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

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

少なくとも

コード:

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

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

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

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

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

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

コード:

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

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

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

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

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

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 25402

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

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

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

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

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

> 丸投げに感じました

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

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

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

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

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

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

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 18808

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

奇遇ですね.私もです.

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

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

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

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

コード:

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのTextOutで変数を表示する方法が分かりません
返信数: 13
閲覧数: 8781

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
5年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 9252

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

…なので,

>問題ないのでしょうか

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

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

コード:

int main()
{
  int a = 10;
  int b;  //←初期化(初期値の明示的な指定)してないけど,いいの??
  ...
  aやbを使った何らかの処理
  ...
}
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトに関する変数の初期化について
返信数: 4
閲覧数: 3501

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

何の話なのかいまいち掴みかねるのですが, 「最初に,ある1箇所において,全て(?)を初期化するべきかどうか」みたいな話…? 「初期化」が必要な対象というのは様々あるでしょうから,色々な要素(例えば下記)を鑑みて,適切なタイミングで「初期化」を行えば良い. ・何らかの明示的な「初期化」の後にしか正常にやれないことがあるなら,それよりも前に「初期化」する必要がある ・ある対象は複数回「初期化」されるようなものなのか,1回だけなのか(2回やったらまずいのか?) ・使いもしないかもしれない対象に関する「初期化」(あるいは生成)は,必要になるまで遅らせる ・「初期化」処理がやたら重いとか,一般に失敗し得...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画素数の中央値、最頻値など…
返信数: 3
閲覧数: 5563

Re: 画素数の中央値、最頻値など…

usao さんが書きました:
5年前
・データの中に,4が何個あるか→4個ある
typo.4個じゃなくて1個.
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画素数の中央値、最頻値など…
返信数: 3
閲覧数: 5563

Re: 画素数の中央値、最頻値など…

「中央値」「最頻値」の言葉の意味をわざわざ説明するまでもない(ググれば一発)とは思うけども, 仮に, { 1, 2, 3, 2, 3, 1, 1, 4, 1 } という9個のデータがあった時… 最頻値ってのは,最もたくさんあるやつだから,ここでは1. このことは,データ値の全種類に関して ・データの中に,1が何個あるか→4個ある ・データの中に,2が何個あるか→2個ある ・データの中に,3が何個あるか→2個ある ・データの中に,4が何個あるか→4個ある っていう個数を数えて,一番個数が多いデータ値はどれだろう?ってことを調べたらわかる. で,「このデータ値毎に個数を数えた結果」って「ヒストグラ...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: フィルタ処理について
返信数: 2
閲覧数: 2850

Re: フィルタ処理について

他のトピックと同様に, >実現するプログラムを作成し がクリアできてるように見えるのに,その内容がわからんという主張が理解できない. 仮に自分で書いたコードではないのだとしても, プログラムを動作させる環境くらいはないのでしょうか. > 実行し,考察せよ. と言ってるくらいですから,動作環境は用意されているように想像しますが. プログラム(特に画像処理のような,絵的な結果を見れるもの)が何やってるかを知る手っ取り早い方法の一つに「とりあえず動作させてみる」があると思うので とりあえず動作結果を見てみたらどうでしょう? まぁ, > 鮮鋭化処理を実現するプログラム って言ってる時点で,「先鋭化処理...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: アルファ合成について
返信数: 1
閲覧数: 2184

Re: アルファ合成について

山のように課題のトピック立ててるけど,何もわからんなら
実装が終わったように見えるこれらのコードは一体どこから出てきたんです?

仮に,課題としての作業として
> 考察せよ
だけが残っている状態なのだとしたら,指定どおりにアルファ値を何パターンか変えてみた結果からてきとーに考察すりゃよいのでは???
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 2値化について
返信数: 1
閲覧数: 2367

Re: 2値化について

(手元にOpenCVを使える環境が無いので試してませんけども)

> 実装せよ.

って言ってるけど,ぱっと見,実装されてるように見える……
どこに問題があるのでしょうか?
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画素ごとの濃淡変換
返信数: 1
閲覧数: 1963

Re: 画素ごとの濃淡変換

> C++を全く授業でやったことがないのに画像処理の講義を取った

そんなの自業自得だし.


> このプログラムが何をしているか全くわかりません

もはや文章になる勢いでコメント書いてあるし……それ以前にあなたの文章自体が内容そのものだったりしないんですか?
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画素数の中央値、最頻値など…
返信数: 3
閲覧数: 5563

Re: 画素数の中央値、最頻値など…

>ヒストグラムを作っているのはなぜでしょうか

少なくとも「最頻値」という言葉の意味がわかっているなら必要性は自明では?
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 別ファイルで宣言した変数が使えない
返信数: 5
閲覧数: 3192

Re: 別ファイルで宣言した変数が使えない

オフトピック
> まだプログラムを始めて数か月しかたっておらず参考書やネットで自分なりに調べてはいるのですが理解力が足りずすみません。さらに質問に質問を重ねて申し訳ないのですがインスタンスが存在するには何があればいいのでしょうか?

これは 苦言 ではなく 助言 ですが,
{型,インスタンス,通用範囲,生存期間,etc…}といった事柄があやふやな状態では
この先,高頻度で同じように躓くことになるかもしれません.
一度基礎的な事柄に立ち返って固めるのが近道かと.
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 別ファイルで宣言した変数が使えない
返信数: 5
閲覧数: 3192

Re: 別ファイルで宣言した変数が使えない

extern t2k::vec3 loc;
というのは,
t2k::vec3型のlocというインスタンスがどこか(非ローカルな場所)に存在しているハズ
ということを宣言しているだけだから
その実態が存在しないなら当然エラーになるわけですが,存在するんですか?

#仮に,もし,このexternで,class Bulletのメンバのlocのことを指そうとしている,という話なのだとしたら,
何かをものすごく勘違いしていると思う.
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: クリック間だけ画像を表示したい
返信数: 1
閲覧数: 1676

Re: クリック間だけ画像を表示したい

こんな形にすればどうですか

コード:

//どこか最初らへんで画像をLoadしておく
haikei = LoadGraph("Graph/up.jpg");
haikei2 = LoadGraph("Graph/down.jpg");

...

{//描画処理を行う箇所
	if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0)
	{
		haikeiを描画に用いる
	}
	else
	{
		haikei2を描画に用いる
	}
}
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題に関して
返信数: 2
閲覧数: 3052

Re: 学校の課題に関して

> 生成した値を配列の各要素に代入する。

と指定されているので,代入作業を行う必要があるように思います.


> 1列1万行

になるのは,出力時に1万回改行しているからでしょう.
所望の形になるように,必要な箇所にのみ改行を入れるとよいのではないでしょうか.
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップ画面での情報の渡し方について教えてください
返信数: 11
閲覧数: 6110

Re: マップ画面での情報の渡し方について教えてください

> (1)について 書いてる方も ふわっとした話 をしてるだけなので大丈夫です. Creatureにいくつか種類があった場合,それぞれの「移動希望」の決定処理を,例えば ・馬鹿な敵:乱数で4方向のどれかを返すだけ  (そっちに移動できないならそのターンは移動できなくてもいいです,という希望) ・ちょいまともな敵:地形は考慮する(壁の方に移動したいとは言わない)が,マップ上のオブジェクト(他のCreatureとか)があることまでは考えない  (結果として,そっちに移動できないなら…同上) ・賢い敵:他のオブジェクト等を考慮した経路探索処理をしっかり行った結果を返す という感じで「書きたいかも/書...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: ppm画像に描画するプログラムについて
返信数: 10
閲覧数: 4106

Re: ppm画像に描画するプログラムについて

期限が今日ですね. (ブレゼンハム的なアルゴリズムをどうこうせねばならない系の課題趣旨でないならば,ですが) とりあえず(非効率だが,わかりやすい方法として) 「320x240個の画素を全走査し,各画素位置(x,y)について,そこに着色するか否かを判定する」とかじゃダメなんですかね. 描画したいのが対角線だろうが円だろうが,その図形と座標(x,y)との間の「距離(のようなもの)」の計算さえできるならば,着色するか否かの判定は書けますよね. (例えば,図形の式を f(x,y)=0 としたとき,f(x,y)の絶対値とか二乗値だとかを評価関数にすりゃいい.線の太さもアンチエイリアスも思いのままですね.)
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップ画面での情報の渡し方について教えてください
返信数: 11
閲覧数: 6110

Re: マップ画面での情報の渡し方について教えてください

あくまでも >何となく楽な気がする という,気配的な(?)感じでしかない話ですが… (1) 移動に関する(現在の)ルールをどこに実装するのか? という点に関する 好み かなぁ. Creature::DecideMove()は,{いいかげんでも,賢くなくなくても,etc...}良い場所にしたいというか, キャラクタの移動アルゴリズムに,移動可否のルールをどこまで考慮するかに関する自由度を持たせたい,というか? (いろんな種類のキャラクタをあとからあとから実装するときに,その全ての種類の移動アルゴリズムに,「完全に(現在の)ルールに即した場所に移動せねばならない」という制約があるのは面倒な気がする...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: ppm画像に描画するプログラムについて
返信数: 10
閲覧数: 4106

Re: ppm画像に描画するプログラムについて

(1)ppmのフォーマットがわかっているのでしょうか  →わからないならググる (2)pixels[]とppmフォーマットとの間の関係を把握しているのでしょうか  →画像を書き出すコードとフォーマットとの対比を見れば,pixels[]の各要素が何の情報なのかがわかるハズ (3)上記まで把握すれば,画像データの画素位置(x,y)の色を(R,G,B)にしたいとき,pixels[]のどこをどう変更すれば良いのかが自明なハズ. すなわち,forブロック内でのpixels[XXX]のXXXの意味がわかるハズ. (例えば,(x,y)の緑成分を128にしたい場合,pixels[XXX] = 128; のXX...
by usao
5年前
フォーラム: C言語何でも質問掲示板
トピック: マップ画面での情報の渡し方について教えてください
返信数: 11
閲覧数: 6110

Re: マップ画面での情報の渡し方について教えてください

本題とはあまり関係ない,好みの話(?)ですが, class Creatrue { //動く. // 引数に与えられた情報を使って // 自身の座標を(ゲームのルール上,妥当である座標に)変更する void Move( 引数省略 ); }; という形よりも //CreatureがDecideMove()で返した内容は,上位の存在(?)によって吟味され, //その内容が許可された場合は,移動先がMoveTo()に渡されるので,Creatureは晴れて移動できる. //却下された場合はMoveTo()がコールされないので,Creatureはその場に留まる結果になる. class Creatrue {...

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