検索結果 1546 件

by usao
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 太線の描画アルゴリズム
返信数: 34
閲覧数: 4269

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

えっと……だから何?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

に限定した場合なら…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

少なくとも

コード:

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

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

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

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

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

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

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

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

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

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

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

> 丸投げに感じました

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

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

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

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

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

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

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

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で保存.内...

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