検索結果 1881 件

by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ テンプレートのいろんな型を list に追加する方法
返信数: 10
閲覧数: 15339

Re: C++ テンプレートのいろんな型を list に追加する方法

とりあえず Flag<int> と Flag< std::string > は「別の型」なので,そういう扱い方はできません. (その点は大丈夫でしょうか?) なので,このコードをコンパイル通すために頑張るのではなく,代替的な方法を考える方が良いと思います. 具体的に何を実現したいのかが明確になれば代替案を(誰かが)示せるかもしれません. (たとえば,テンプレートではなく union とか void* とかでどうにかするとか) 以下のような情報があると良いかもしれません. >いろんな型 これの種類って固定でしょうか? それとも本当に”任意の型”を考えておられるのでしょうか? あと,仮にそのリスト...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 【DXライブラリ】アクションゲームにメモ機能を実装したい
返信数: 4
閲覧数: 4691

Re: 【DXライブラリ】アクションゲームにメモ機能を実装したい

なんだろう?
キャラクターとかが動いているゲーム画面上に 唐突にマウスで何か線を引けて,
それがゲーム進行に伴う背景とかのスクロールに合わせて移動すればいい,という話なのでしょうか?

そういう話だとしたら,マウスでの描画の開始~終了までのマウス軌跡点群を
包括する矩形サイズの画像(BMPなのか何なのかわかりませんけど)的なオブジェクトを作成して,
あとは背景と同量だけ(STGとかでいうところの"地上物"みたいな感じで)移動させるようにすればいいのではないでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】美しいコードとは?
返信数: 16
閲覧数: 12466

Re: 【雑談】美しいコードとは?

>美しいコードの書き方

逆説的になりますが,
「コードを書くときに『これはどうにも美しい書き方では無い』と思わないような形に書く」
という感じでしょうか.
言い換えれば,「その時最善だと思う形に書く」…かな?
オフトピック
その時そうしたつもりでも,しばらく後に見ると
「なんだこのコードひどい」とか見えたりするけれども,それは自分がその時よりも成長しているからなのだと思うことにする.
で,それが起こらないコード,すなわち,後で「そういや書いたことあるなぁ再利用しよう」となったときに
特に美しくないコードだと思わなかったとき,そのコードは自分の中では「美しいコード」の部類に入るのかも?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

座標変換側のテストについては,(コードまで読んでませんがテスト自体がバグってたりしないならば) 結果としては良いのではないでしょうか. このテストで用いたRとTが,あなたが本番側のコードで用いているそれらと同じデータ形式であれば 計算箇所をそのまま本番側に持って行っても使えるハズです. gifで示された側は 見るべき値は左上の水色の値で,これは 紫の線と緑の線 がなす角のcos()値になっているべき ということですよね? まず,今回は少なくとも,内積の値がcos(45度)の境界を越えた際に if(){}のスコープに入ったか入らなかったか,を見たいのだと思うのですが, gifを見た感じだと常に ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

>これを証明するには回転行列の中身にもある平面上の三角関数の挙動について熟知していないといけませんよね >現在の向きから手計算で方向を算出しないといけないのでしょうか。 >ゲームを作る上で当たり前なのでしょうけど・・・ どういうふうにやるにしても 「こうなったら正しい」「正しい結果はこう」という比較対象がないと,動作が正しいかどうか判断つきませんよね. 手計算で簡単に求められるデータを作るのでももちろんOKですし 例えば,以下のようなテスト方法とかだと,全部PCが計算しますが「正しい結果」が既知ですよね. (1)まず,飛行機の位置T=(0,0,0)としてワールド原点に置き,回転Rも単位行列にし...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

>これは以前の0.5と比較していたコードの時と根本的な解決になっていないような・・・ ならば根本的なことをきちんとひとつずつ確認していきましょう. まず,座標変換の問題の解決(DestinationDirectionがまともな値として得られていること)が 十分に確認されているのでしょうか? まだであれば, 正誤が確認できる状況(機体向きと目標点座標)で何通りか計算させて確実に求められていることを しっかりと確認してください. (以降の処理に対する入力なので.入力が間違っていれば話が進まない) で,そのうえで, >「目標への向きと現在の向きのなす角度が45度以上ある場合、if文のスコープに入る」...
by usao
10年前
フォーラム: サンプルを共有するコミュニティ
トピック: Catmull-Rom Spline
返信数: 0
閲覧数: 6795

Catmull-Rom Spline

参加しましたのでちょっとしたものを. Catmull-Rom Spline. 全ての制御点の上を通る曲線(の上の点)が簡単に求まるので便利. (数式とか曲線具合は検索すると見つかります.) //Catmull-Rom Splineの,ある区間(隣接する制御点間)のカーブ(上の離散点位置)を計算する. // //・制御点[i]~制御点[i+1]までの区間を,"i番目"の区間とする. //・両端の制御点位置での傾きは関数内でてきとーに決定されるが, // 自分で制御したい場合には,両端の外側にもう一個それ用のダミー制御点を用意すればできると思われ. // //< template引数 > // V...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

>逆行列 回転マトリクスの逆行列,ということであれば,転置と同じ意味です (正しい文言(?)をググったところ「直行行列の逆行列は転置」だそうです.) >e-008 10のマイナス8乗です. その程度なら影響のほとんどない誤差と見なして良いのではないでしょうか. >内積 うーん,{内積や外積,行列の本当の基礎}くらいはさすがに勉強しないと 3Dのゲームを作るのは難しい(というか無茶な)気がしますが… (中学校か高校でやったと思うのですけど.) 【内積】 A・B = |A||B|cosθ ここで,|*|はベクトル*の大きさ,θはAとBがなす角です. また,内積はA,Bの成分から A・B = ax*...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムを起動してコールバックの取得方法
返信数: 1
閲覧数: 1367

Re: プログラムを起動してコールバックの取得方法

オフトピック
(その相手先に尋ねればいいのに…)
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 11008

Re: ifまみれの移動制御をなんとかしたい

>そこが悩みどころです。
あ,私の指摘は,「移動処理をどうすべきか」という方法論についてではなくて
あくまでも
「ifで書いてたときと結果が違うけど大丈夫?」(コードをきれいにする作業→動作が変わったらダメじゃない?)
という点についてです.本件のタイトル的に.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ifまみれの移動制御をなんとかしたい
返信数: 24
閲覧数: 11008

Re: ifまみれの移動制御をなんとかしたい

左と下が同時に押されたら
p.yが通常の2倍だけ変化しそうですが,それで動作としてはOKなのですか?
(ifで書いてた時と動作が違いそう?)
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 2.ジャンプ処理 について
返信数: 10
閲覧数: 5839

Re: 2.ジャンプ処理 について

難しいところが何なのかがいまいちつかめてないのですが,

最初に「押した」を検知(ジャンプの開始)
→以降,「離した」ことを検知するまでは押されたままであると判断(ジャンプ高さがどうのという話を制御)
→前記「離した」ことを検知しないと,次回の「押した」を検知しない(連続でジャンプしない)

ということを単純にやれば良いような話ではないのでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 質問です
返信数: 1
閲覧数: 1507

Re: 質問です

なんか同じ質問が2つあるようですが,こっちを使いますか. とりあえず 「課題の類なのか,単に自分でやってみているだけなのか」 を教えてください. さて,現状のコードについてですが,このプログラムの問題点は「何もできていない」ことです. やりたいことの内容がいまいち不明瞭なのは置いといても, 「配列」「ソート」「コピー」などと言った単語が並んでいるのに対して そのどれもが実装されていないのは何なのでしょうか? 問題を (1)n*m個の掛け算九九みたいな値を一次元配列に入れる (2)その配列をソートする (3)「1個しかないなら」とかいう条件に見合うものを別の一次元配列にコピーする という3段階く...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 2.ジャンプ処理 について
返信数: 10
閲覧数: 5839

Re: 2.ジャンプ処理 について

リンク先のコードを見た感じだと,
(ジャンプと関係なくパッド操作でY座標を増減させることが可能なように見えて,その辺が謎というか意味不明なのですが,
 それはそれとして置いといてジャンプボタンの押下だけでの操作の話だとして,)
ボタンを押している長さでジャンプの高さが変わったりしそうには見えないのですが,実際は変わるのでしょうか?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

VTransform()というのをググってみたところ,以下のような変換みたいです. >戻り値.x = InV.x * InM.m[0][0] + InV.y * InM.m[1][0] + InV.z * InM.m[2][0] + InM.m[3][0] ; >戻り値.y = InV.x * InM.m[0][1] + InV.y * InM.m[1][1] + InV.z * InM.m[2][1] + InM.m[3][1] ; >戻り値.z = InV.x * InM.m[0][2] + InV.y * InM.m[1][2] + InV.z * InM.m[2][2] + InM.m...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 方向ベクトルと中心点間の距離
返信数: 3
閲覧数: 2819

Re: 方向ベクトルと中心点間の距離

その方向ベクトルの値 (0.71,-0.71 ) が間違っているだけではないでしょうか.
(その図では下に行くほどYが+なのだと思うのですが,
 方向ベクトルの矢印の向き的に考えて,Y成分が負の値というのは違いません?)
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: debugではバッチリ。releaseしたら不具合が発覚。
返信数: 10
閲覧数: 48079

Re: debugではバッチリ。releaseしたら不具合が発覚。

あと,その 個別キャラ というのがどういう風に互いに何かが異なるのか がわかりませんが,
場合によっては,その違いをStrategyパターンみたいな感じに書く方が向いていたりするかもしれません.
オフトピック
StrategyとBridgeとStateあたりの呼び分け方がどうにもはっきりしない私.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: debugではバッチリ。releaseしたら不具合が発覚。
返信数: 10
閲覧数: 48079

Re: debugではバッチリ。releaseしたら不具合が発覚。

>例えば、usaoさんなら下記の状況時、どうされますか? 私なら…という話で答えますが, 原則というか: ・実装を持つクラスは自身の受け持つ仕事を責任をもってやる. ・クラスは「自身が管理する変数=自身の受け持つ仕事に必要なもの」のみを持つ. 以上から,あるクラスが自身の仕事の範囲に必要のない変数を持つことはありません. なので,その例で言えば  その基底クラス(キャラclass)が変数aを持つのは私的にはおかしいです. Aclass~Fclassに本当に共通な要素だけが キャラclass に含まれる候補になります. aはその中に含まれません. ●A~Dのクラスがその変数aを同じ意味で用いてい...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

うーん,よくわからないけど, ”今まではライブラリがその辺の変換を中でやってくれていたのだけれど,  今回その変換を自前で計算しないとならなくなった” といった感じ…なのかな? >ControlAircraft->AxisX ・このControlAircraftというやつもライブラリ側が提供してくれているオブジェクトを指しているのでしょうか? ・そのメンバ AxisX とか GetPosition() とかは実際には何に相当しているのでしょう? GetPosition()が返す座標が,ワールド座標系で書かれた 飛行機の現在位置 であって, AxisX,AxisY,AxisZ が, ワールド座標...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

今何かを確認されているコードって他者が見てわかるものなのでしょうか? 貼られているコードで使われている関数とかが 一般的に使われているライブラリの関数か何かであって, 見る人が見ればわかる(つまり他者からアドバイスが得られる状態である)のであれば良いのですが. ところで,現状態は ワールド座標系とローカル座標系との間での座標変換 という基礎的な事柄がバグっているという話なのですか? (つまり本題とは関係ない,かなり前段階のところで問題発生中?) だとしたら 他のスレッドでやられているミサイルの話等でもそういったこと必要だと思いますし, (というか今までずっと3次元のSTGをコーディングされてこ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ランダムダンジョン自動生成に関して
返信数: 6
閲覧数: 5180

Re: ランダムダンジョン自動生成に関して

(なんかこのサイトが繋がらなくなっていたためか) 他に誰も回答されていないようですから,一つアドバイス(のようなもの)を. なんというか,処理の単純さに対してコードがごちゃごちゃしすぎているような印象です. 短いんだけどデバッグ時に追いにくそう,というか. 例えば,どうしても今のコードの問題点がわからないとか直せないとかいうことであれば, ひとまずそのソースコードは別に保存しておいて, 挙動が把握できる結果が各段階で出来上がっていく形に書きなおすとデバッグしやすいかもしれません. ・ある処理単位を関数にでもして,処理のINとOUTをきちっと決める ・処理フローをきちっと決定する&そのことをコー...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

>問題を単純化したほうが、後々応用が効くかなと思い、 >目前の問題だけまず解決しようかなと・・・。 >でもそのせいで今、後出しはやめろと非難されてるんですよね、申し訳ありません。 別に単純化した問題を扱うのは悪くないですし, 不要な箇所までコードを出せとも言っていません. 単に, 「機種を目的地の方向に向ける」ためにどういう手順で処理を行おうとしているのですか?と質問しているだけです. その肝心のAIの中身が決まっていないのであれば, 「思うように動く」はずもないのですし,誰も何も答えられないと思うのですが. 「後出し云々」については, そのような質問状況に対して回答者が回答者なりの方法を答え...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 12179

Re: 飛行機を目的地の方向に向けたい

なんか毎回「思うように動かない」みたいな曖昧な質問である印象です. (本当にやろうとしていること が後出しでは回りくどいだけだと思うのですが.) ●そもそも目的を達成した状態はどういう状態ですか? (例えば目標が地表面にあったら,そのまま飛んだらそこに激突するコースに乗せればよい?  そのときの機体ロール姿勢は問わない?) ●で,それに関してどういう制御を行おうとしているのですか? (例えば,  (1)とりあえず方角だけを揃えることを優先して,  (2)その後で仰俯角を揃える  という2段階の処理であって,(1)とは具体的にはこうで,(2)はこうだ,みたいな話) ●まったく方向転換しなくなる,...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ランダムダンジョン自動生成に関して
返信数: 6
閲覧数: 5180

Re: ランダムダンジョン自動生成に関して

>//このifは意味もわからないまま対症療法的に追加した要素 ご自身で何やってるかわからないコードを書かれているのであれば, そもそもまともに動く確率はかなり低いような気がしますが. そんな投げ出した感がある状況で人にコードを読めというのは… (まぁ,かなーりやさしい人なら読んでくれるかもしれませんが,とりあえず私はパスですね.) まず,自身で把握できないコードを継ぎ足すのではなく 問題が発生する状況を作り出して,ちゃんとデバッグすべきだと思います. 常にうまくいかないのか,乱数系列次第なのか知りませんが,とりあえず srandの引数に 定数を設定 して(うまくいかない状況で)処理を追えばよい...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 4530

Re: C++での分割コンパイル

オフトピック
おおう… なんで過去形… 完全に頭がどうかしてた模様.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 4530

Re: C++での分割コンパイル

なんか話があまりタイトルと関係ないような気もしますが… structがclassになっただけで書けない という状況から protected privateのようなアクセス制限された変数を直接参照しようとされているのかな?と推測しますが, 仮にそれだけの話であれば, SetterとかGetterとかいう単語について調べればよいでしょう. (クラスのメンバ変数にアクセスする手段を設ける) あと,目的の処理をどこに書くべきか?という話も別途あるような気がします. たとえば,猫クラス と 食べ物クラス という2つのクラスがあったとして, その2つのクラスの情報を必要とする操作(関数)である「猫が食べ物...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

あ,現在,ここ↓の Player.cpp の書き方を目指しているということなのかな? d.3章 ゲームの設計と分割コンパイル(1) http://dixq.net/g/d_03.html だとしたらちょっと余計なことを言ったかもしれませんね. 現在の方針とちょっと違うというか. リンク先では以下のように書かれていますね. 私が言っている内容は(下記引用の)前半の段落で言っていることですね. で,リンク先ページで実際にやっている話は後半の段落の内容なのですね. 大丈夫です。関数さえ呼べればそれでいいのです。 必要な情報は関数の引数で与えてやり、取得したい時は関数の返り値で得ればいいのです。 (ポ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

現在どういう手順で進めている流れなのかちょっと把握できてないのですが, 最初はWinMain()内にあった変数群がいつのまにか外部変数になってしまっていますね. 「俺は全て外部変数でいくぜ!!」とかいう話でないのであれば, 「関数化」というのは処理コードを物理的(?)に関数にわければよいという話ではなく, 呼び出し側と必要なデータのやり取りできるように書かないとダメです. (そのために 変数a,bの値が変遷していく小さいコード例を示したのですが) こういう形にするのは難しいですか? int WINAPI WinMain( ... ) { int PlayerX=0, PlayerY=0; in...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 10375

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

うーん,反応が無いので迷うけど,一応答えのようなものを書いておきますか. (1)IplImage構造体の内容くらい確認しよう → OpenCVのリファレンスくらい見ようね. (2)使っているラベリングクラスの仕様くらい確認しよう → 画像データ以外にも,ひょっとしてwidthとheightが逆になったりしてませんか?それ. この2行で十分な気もしますが,(1)について詳述しておきます. ・画素データの領域はIplImageのメンバである char *imageData の指す先にあります.  だから IplImage型オブジェクトへのアドレスをそのまま引数として指定している時点で間違っています...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

話の流れと関係ない感じで申し訳ないですが,No42のシンプルなことをちょっとやってました. {2D,ターゲットは等速直線運動}という状態で. 結果: まぁとりあえず当たりますが動きが楽しいかと問われると微妙.速度一定で進むので慣性っぽさがない予感.  ↓ 「一定距離進む」のところを「その方向に加速する」に変更してみると, ”ターゲットの周りを衛星状態”に陥ること多数 →毎フレーム ミサイル速度を減衰させる処理を入れることでかなり軽減できる模様. 需要ないでしょうけど一応コード貼っておきます.(ログ的な意味で) #描画と表示などにOpenCVを使っていますが,動かしてみたい場合,書き換えは容易か...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

例えば,シンプルに毎フレーム (1)ミサイル現在位置 (2)ターゲット現在位置 (3)ターゲットのいくらか未来の予測位置 の3制御点でBezier曲線を求めて,ミサイルはそのフレームでは現在位置から曲線にそって一定距離分すすむとか (曲線上の距離がめんどくさい場合(1)の点での傾き方向に進む,とかで近似してもいいか) なんとなく 常に「(2)と(3)の間の方向に向かって進む」ということになりそうだけど (2)と(3)の間の重みがちゃんと毎フレーム変わることになるだろうか?(数学疎いのでよくわからない) 固定だったら曲線とか意味ない. (2)や(3)の座標の更新方法を工夫すれば慣性っぽさが調整で...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

なんかもう 加速度がどうの とか忘れて,毎フレーム
適当なパラメトリック曲線に沿って一定距離だけ進ませればいいんじゃね?とかいう邪悪な(?)考えが…
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

>pは200という値をbに参照しているということですか? うーん,何というか,主語と述語がどうなっているのかよくわからない…というか. (0)int b = 100; → 最初,main()のローカル変数bの値は100です (1)ChangeValueTo200( &b ); → 変数bのアドレス値 が引数として渡される (2)void ChangeValueTo200( int *p ) に処理が移るとき:  関数は値渡しなので,関数ChangeValueTo200()内のローカル変数であるpの値が(1)で渡された値で初期化される.  (すなわち,ポインタ型変数 p の値は main()側の...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

>3次元の物体そのものの演出であって、別に点の軌跡からわかることではないですよね。(私のイメージはリアが滑っているような感じなのですが) そういうこと(ドリフト感はミサイルの描画の問題,みたいな) をNo3で既に述べたつもりなのですが,なんか違うみたいですよ(?) というかNo3程度ので不十分なのかどうかが? 加速方向を >ミサイル現在位置→ターゲットの数フレーム後予測位置 方向 に取れば比例なんちゃらいうのに原理的に近い形になると思うし, >各フレームで任意の方向に加速できる これがいやならそのフレームで加速できる方向に制限を設ければいいだろうし 命中率とか命中までの軌跡の長さに不満があるな...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

>うーん、球の交点というのがいまいちピンときません。 そうですか…私にはこれ以上簡潔に説明できませんし 他の方もおっしゃられているように非常に不自然な結果になると思われ,そもそもそのまま実装することもないでしょうから これ以上この計算内容について述べるのは無駄だろうなと思います. >それに、ミサイルの移動ベクトルとターゲットの方向から推力ベクトルの回転の算出もよくわからず・・・ 少なくとも私が書いた説明の計算内容は,現在のベクトルをいくらか回転させてどうの というような話ではありませんよ. 各時刻のミサイルの向きMDirを方程式の解として求める,というだけの話です. 言い換えれば 前時刻のミサ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

>ですよね? はい.(pとbの文章がすこし怪しいですが)結果としては合っています. そこまでわかっているのであれば, あなたの各関数でも同じようにデータを引き渡したり値をreturnしたりするようにすれば良いわけです. (個々の変数をどこで定義するかは別の話ですが,例えばとりあえずWinMainにある変数を使うとして  引数や戻り値で各関数とやりとりすればよい.) この状態で無事に動作したならば,あとは分割コンパイルは悩むことはありませんよね. ある関数の実装を別のソースファイルに移動したとしても, それを利用するWinMain側からその関数の宣言が(例えば宣言が書かれたヘッダincludeし...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

void PrintValue( int v ) { printf( "%d\n", v ); } void ChangeValueTo200( int *p ) { if( p ){ *p = 200; } } int Add( int a, int b ) { return a + b; } int main() { int a = 800; int b = 100; PrintValue( a ); ChangeValueTo200( &b ); a = Add( a, b ); PrintValue( a ); PrintValue( b ); return 0; } うーん,このく...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 10375

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

>仕様を見直してみましたがline27のキャストは問題ないようです ざっと検索してみましたが,ここ↓のやつでしょうか? だとすれば,どう見ても違うとしか思えません. http://oshiro.bpe.es.osaka-u.ac.jp/people/staff/imura/products/labeling もしそのキャストが本当に合っているのだとすれば,そのクラスは  少なくともIplImage構造体と ヘッダ部のサイズや 画素情報のあるメモリ位置へのアクセス手段といった点で 互換性のあるデータ を要求していることになります. IplImageの画素情報がどこにどうやって存在しているのかを理...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

それに、usaoさんの >「ターゲット予測位置方向に常にミサイルの速度ベクトル(Mlne)が向いている状況をキープする」 という状況を加えたいです。 おっと,なんかこの文面だけを見ると まるで私がそういうことを提唱しているかのように見えちゃいそうなので 念のため書いておきますが, 私は単に「本当にそれがやりたいのならば」「その計算内容はNo13およびNo17のようなことになりそうですよ」 と言っているだけです.(内容が合ってるか間違っているかは別として) #さらに,状況次第では不自然な動きになるのではないかと想像しています.なんとなくですが. で,仮に計算方法の内容が合っていれば 3次元なら...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 10375

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

あなたが使われている
>井村先生のラベリングクラス
とかいうものの仕様を説明しないと答えようがない気がしますが.
(ラベリング処理の仕様というか対象は何なのか.例えば
 位置的に連結していて且つ同値な画素で領域を作るのか
 それとも 非0の画素であれば値が異なっていても連結位置であれば同領域とするのか,みたいな)

あと,それ以前に,line27のキャストが非常に気になるのですが,これがバグだというオチではありませんよね?
(LabelingBSクラスの仕様次第ですからあってるのかどうかわかりませんけど,
 IplImage*をuchar*にキャストして渡すのが自然な行為とは到底思えない)
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 9473

Re: 分割コンパイルを詳しく教えてください!!

分割コンパイル以前に,まず,
各々の処理(自機を動かすとか敵が動くとか)を関数化するところから開始しましょう.
仮に「そんなことはできる,やりたいのは分割コンパイルだ」というのであれば
とりあえず各処理を関数化した状態のコードを作って,それを提示された方が話が早いはずです.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

疑問が少しあります。 >(2)の矢印の先端を中心とした半径MAccの円を書いて,この円と(1)の直線との交点Pを求め, >MDir = UnitVectorOf( P - (2)の矢印の先端 ) 矢印の先端を中心とした円と直線の交点とはどのような意味があるのでしょうか? 説明を読んだ限りだと, 「ターゲット予測位置方向に常にミサイルの速度ベクトル(Mlne)が向いている状況をキープする」 ことが,やりたいことなのだと思いました. 仮に現フレームでミサイルが「加速しない」とすれば,ミサイルの位置は前時刻の速度(Mlne_prev)分だけ進みますよね. その位置が(2)の矢印の先端です. その移...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

>MIneを単位化したベクトル == (EFPos - MPos)を単位化したベクトル >を満たすMDirの値が知りたい、 うーん,果たしてその説明どおりのものを求めたとして,自然に見えるのかどうか… ちょっと図の貼り方がわからないので想像していただきたいのですが… とりあえず想像しやすいように2次元だとして (1)点MPosから,目的の方向(EFPos-MPos)を示す直線を引っ張る. (2)点MPosから,前フレームでのミサイル速度ベクトルをあらわす矢印を引っ張る(向きが速度方向で長さが速度の大きさの線分) やろうとしていることは,Mlneを Mlne = Mlne_prev + MDir...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

>知りたいのは、ミサイルをどの方向にどれぐらい回転させれば、進行方向を対象物の座標に向けられるか、の算出式です。 比例航法というやつは,「(未来に相手が要るだろう方向に)いくらか余計にミサイルの向きを回転させる」という話だと思いますけど(偏差射撃というか) 示されたリンク先に式まで書かれているのですが,それではダメなのでしょうか. >どれぐらい がちょうどいいのかは,裁量次第なのだと思いますが.とりあえず3次元だと ・前フレームでのミサイル位置 → 前フレームでのターゲット位置 ・現フレームでのミサイル位置 → 現フレームでのターゲット位置 なる2つの方向ベクトルにより張られる面を考えて,その...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 参考書、またはそれに準ずるサイトを探しています
返信数: 6
閲覧数: 2798

Re: 参考書、またはそれに準ずるサイトを探しています

「アルゴリズム ソースコード」でググっただけですが,こういうのとは違いますか?
http://www.codereading.com/algo_and_ds/
オフトピック
>もっと技術的
ということであれば,こことか…(冗談です)
http://www.ipol.im/
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの一部書き換えについて
返信数: 2
閲覧数: 1850

Re: ファイルの一部書き換えについて

(1)ファイルの内容を全て読み込む
(2)改竄する
(3)別名で保存する

ではダメですか?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

ミサイルの向いている方向に進む/加速する のではなくて 運動は単純化: 各フレームで任意の方向に加速できる点とみなして 計算する, 例えば, ・ミサイル現在位置→ターゲット現在位置 方向 とか ・ミサイル現在位置→ターゲットの数フレーム後予測位置 方向 に毎フレーム加速度を加える  ↓ 表示的なミサイルの向きは常に ・ミサイルから見たターゲットの方向 とか ・(ミサイル現在速度方向+ミサイルから見たターゲットの方向)/2 とかにしてしまえばドリフトっぽく見えないことも無いと思いますがそれだとダメでしょうか. ・・*Tgt ・ ・ ・ ・ ・ ・ ・ミサイルの運動軌道 ・ ・ ・ ▲自機  ↓表...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 27287

Re: ドリフトっぽい動きをするミサイル

何をしたいのかがいまいちわかりません.簡潔に言うと  今まで作ったミサイル → フレームごとに向いている方向へ一定距離だけ進む  これから作りたいもの → フレームごとに向いている方向へ一定量だけ加速する ということですか? ・とりあえず加速度の概念を単純に導入(向きの操作はそのままに)したらどうなるのですか? 何が不十分なのですか? ・「最適な方向」とは何ですか?  (相手が等速直線運動している仮定の元で,ということであれば   実際の相手は仮定を覆すだろうから,仮定の上での何らかの厳密さを追い求めても無駄な気もしますが) ・その他,そのフレームは加速しないという選択肢を取れるのか? とか,...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: debugではバッチリ。releaseしたら不具合が発覚。
返信数: 10
閲覧数: 48079

Re: debugではバッチリ。releaseしたら不具合が発覚。

Releaseではだめという状況はわりと良く目にします.やらかしてるコードを見ると 変数初期化してないことが理由であることが多いですね. VisualStudioのdebugモードだと未初期化状態の変数領域は特定の値で埋め尽くされるみたいなので それによって たまたま 動いていたのが Release時には その勝手な初期化 が無くなるために異なる結果になる,みたいな. これの防止策は そもそも確固たる理由なく変数を初期化しない状態で放置するということをしなければいいだけですね. (未知の値な状態から処理開始!きっと動くさ!! とか私なら不安すぎて絶対やりません) >継承クラスたちのインスタンス...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

オフトピック
>出来次第、またここであげますね。
その際,NO.5のように微妙に相手を名指ししたような雰囲気を出してしまうと
他の方からの意見が得られにくくなるような気もしますので,気を付けられた方がよいかも?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ソートについて
返信数: 6
閲覧数: 2976

Re: ソートについて

sato さんが書きました:やや言葉足らずだったようで申し訳ありません。できればソートアルゴリズムは自分で実装せずに他のライブラリから呼び出して使いたいと考えているのですが、その方法がわかりません。自分で書こうとしても、高速なアルゴリズムにするには時間がかかってしまうので、あまり現実的ではない気がします。
処理方針(?)を示しただけです.
ソートアルゴリズム部分は std::sort なりなんなりを使えばよいのではないでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ソートについて
返信数: 6
閲覧数: 2976

Re: ソートについて

>たとえば、テストの点数から成績順に学籍番号を並べ替えたいなどの場合です。 struct StudentData { int TestScore; //テストの点 int StudentID; //学籍番号 }; のようなデータの配列を作ってソートすればどうでしょうか. もし,↓のようにデータを持っているとしたら… const int N = 10; int TestScore[N] = { ... }; int StudentID[N] = { ... }; ソート処理により動かすものをTestScore[]等のデータそのものではなく 配列のindex値にする とかすればよいのではないでしょ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

>DXライブラリではDrawGraph等の描画関数が用意されていますので、 >CImgの存在意義としては画像ハンドルを持たせられる...といったところでしょうか? No.17のコードの状態だと, 「画像のロード&いらなくなったら捨てる」機能を持たせていれば,まぁ少しはなんかしてる感がありますが, そうでないなら,実際になんというライブラリ関数を使って描画しているかを隠しているだけですね. (そもそもハンドルで扱えるところまではライブラリがやってくれているので,そこからさらにやることは少ない.) こんなこと↓する意味があるかどうかは別として, 例えばこうすれば,CCharacterクラスは自身の...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

>引数を持たないのはfor文で回し、全ての描画を一括して行える様にする為です。 これ自体に問題があるのではなく そのforで回される対象って実際なんですか?ということですね. (「描画するものリスト」か何かに登録しておいて,そのリストに対してfor&Draw()されるとしたら,  リストに登録されるものって何(どういう単位か)という.) 個々の画像 というレベルの粒度(?)でこの仕組みを扱うのが やることに対して適しているかどうか,というか. >あとは実際にはDraw()を持つべき対象は何なのか >(画像毎に描画位置などを保持する形が好ましいのかどうか)とかいう話もあるのかもしれませんが, >...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

これは完全に私の好みかもしれませんが, もし私が「画像」をクラスとして作るなら…こんな形になったりするかも. (おそらくDXライブラリを使われておられるのだと思いますが,私は該ライブラリを知らないので  実情にそぐわない部分があるかもしれません) //※細部は省きます. class CImg //画像 { public: CImg() : m_hImg(0) {} //※「無効なハンドルの値」を表す値が0でいいのだとして※ void SetImgHandle( int hImg ){ m_hImg=hImg; } bool DrawImg( 位置, 透明度=100, 反転するかどうか=fals...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 動的2次元配列(new)についてお聞きしたいことが…。
返信数: 11
閲覧数: 4647

Re: 動的2次元配列(new)についてお聞きしたいことが…。

オフトピック
複製行為への対策も欲しいですね
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

>Draw、DrawSystem内などは一番最初に記載しているのですが...
本当ですね……なぜか宣言側しか見えていませんでした.
大変失礼しました.


あとは実際にはDraw()を持つべき対象は何なのか
(画像毎に描画位置などを保持する形が好ましいのかどうか)とかいう話もあるのかもしれませんが,
それはこのスレッドの話の範囲外でしょうかね.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

DrawSystem()とDraw()がそれぞれ中で何をやっているのかこちらには不明なので 以下想像ですが, 要するにやりたいことは,たとえば CDraw *pDrawItem = new CGraph; ... pDrawItem->Draw(); とすることによって,描画を可能とすること,だったのだと思うのですが, コードを見るとCGraphではDraw()がオーバーライドされておらず,この場合, CDrawCommon::Draw()が呼ばれることになりますね. CDrawCommonはCGraphが描画すべき画像ハンドルを持っていることすら知らないわけなので, CDrawCommon:...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

Draw()とDrawSystem()の2つがある意味がよくわからないのですが, ひょっとして,各具象クラスでの実際の描画処理が定義されるのは Draw()ではなくてDrawSystem()の方なのでしょうか? (だとしたらDraw()の役目は何?ということになるけど…) あと,constにできるメソッドはconstにしとくと良いかと思います. 何をどこまで小分けにするのか,については,それらのクラスの実際の利用状況というか 「どういうものを表しているの?」といったことがわからないと何とも言えない部分があると思います. 座標の方はまだしも その画像ハンドルクラスというのは一体何の役目を担ってい...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 12829

Re: C++ではなくあえてC言語を使用するメリット

>目的のプログラムを作るのに最短のソースコードで書ける それもありますし,書いたコードを見て何が書いてあるかが直感的にわかるかどうか,という違いもあるかもしれません. 例えば 3次元ベクトル A,B,C,D,E について C = (A*B) * C + ( D - E/5.0 ); //※ベクトル間の*はここでは内積だとする みたいな計算をしている箇所があったとして,C言語でベクトル用の型とその演算のための関数群を typedef struct Vec3D { double v[3]; } Vec3D; Vec3D AddVec( const Vec3D *lhs, const Vec3D *...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 3192

Re: アフィン暗号に関する問題についての質問です。

>>みけCAT様 うーん,全探索ですか. 小難しい話を放棄できるのが利点ですが,いきなり最終手段に打って出てる感があるというか… 少しだけでも工夫できればずいぶん計算時間が違う気がするんですよね. 例えば… βの値の影響って,変換テーブルが回転するだけだと思うので, thisやthatをあらわすパターンを値そのものではなく,テーブルが回転しても不変な性質で判定できれば 力技で探索するにしてもα側だけで済ませられるかもしれません. 例えば,符号化された4文字を,先頭とその他3文字との間の差分値(→3つの値)で表すとしたら, あるα値のとき,thisやthatが取り得る表現はβの変動に対して何通り...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 12829

Re: C++ではなくあえてC言語を使用するメリット

>usaoさん、勘違いさせてすいません。 02giriさん宛のつもりでした。
なんということでしょう.


>将来的には開発職に就きたいと考えていますので、
であれば,「言語の習得」というのも目的のひとつと言えますね.
オフトピック
電車と車の比較で言えば,ルート形状の複雑さというのもありますね.
鉄道網<<道路網 だと思うので,素直なルート(地図上でのルート形状が直感に近い)を辿れるのは車.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 12829

Re: C++ではなくあえてC言語を使用するメリット

>電車(C言語)で事足りるのになぜ車(C++)が必要なの? (えーと,私への突っ込みなんですよね?これ.) このたとえで頑張ろうとしたのですが, 電車がまともに走ってない地方に住んでいることもあり,うまく書けませんでした(泣) 質問者様の質問が 何でわざわざCを使うのか? なのに対して 何でわざわざC++を使うのか? と逆のことを問われている気がしますが… 何を言えばいいんでしょうかね. 私はゲームを作ってはいないのですが,C++を使う理由は,個人的には 「機能面で C++ ⊃ C (記号これで合ってるかな?) だから」でしょう. C++をまがりなりにも日常的に使っている身としては,環境的な理...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 12829

Re: C++ではなくあえてC言語を使用するメリット

車で行けばいいのになんで自転車なの?
→自転車で行ける距離だったので
→現在自転車には乗れるけど車の運転はできないので
→車なら早いだろうけど自転車でも頑張れば物理的に行けないわけではないし

現在自転車に乗っているひとが将来自動車免許を取得して乗り回すつもりがあるのかないのかは個人次第.

…という感じじゃないでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 3192

Re: アフィン暗号に関する問題についての質問です。

[コードを拝見して] ・A,Bが不定値なのに演算に用いている点:プログラムとしておかしい. ・いきなりA,Bを求めることが可能なのか?という点.  入力されてきた文字列をヒントにしなければA,Bを推定することが不可能だと思う.  (原文が同一でも,暗号側が用いたA,Bの値が異なれば入力文字列が異なるはずなのに,   入力を見ずに果たしてA,Bを推定できるであろうか?) [解法について] 私も現時点で答えがわかるわけではありませんので,感じたことだけ… とりあえずキーワードが共に4文字なので  入力文字列を単語に区切って,4文字の単語群のみを見る.  →4文字のうち,最初と最後が同じやつは,th...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 3192

Re: アフィン暗号に関する問題についての質問です。

人にコードを見せて何かを確認してもらおうという場合, 少なくとも自分のコードの各所が何をやっている(やろうとしている)のかくらい説明した方が良いと思いませんか? 現状ではコードから「あなたがどういう作戦で問題に臨んでいるのか」というレベルから読み取らねばなりません. 100人いたら100人がまず同じことをやるような非常に簡単な話ならまだしも, 人によって解法が異なるかもしれない類の問題なのだとしたら,あなたのやろうとしていることを読み取れなければ 回答できない→その分有用な回答を得られるチャンスが減る わけで,損だと思いませんか? で,問題を見た限り,A,Bの値は公開されておらず,これを推定す...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 数当てゲーム2
返信数: 4
閲覧数: 2868

Re: 数当てゲーム2

>プレイヤーが入力できる最大の回数が、どのくらいであるかも考察すること って何がいいたいのかいまいち不明瞭ですよね. 「最大回数をどのくらいに設定しておけばゲームとして良さそうか,を考えてみろ」ということなのかなぁ? (回数制限が少なすぎると まず当てられない→クソゲー  多すぎると,てきとーに数を調べまくっていれば正解できる→クソゲー  じゃあ多すぎず少なすぎずという具合はどのあたり? という.) 仮に↑のような話だとして… junjunjunさんなら,このゲーム,何回の入力機会が与えられていたら「絶対に正解できる」でしょうか? 言い換えれば,N回の入力機会がある場合の必勝法 でしょうか. ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 9246

Re: 自作:描画クラスについて

基底クラス CDraw で規定すべきインタフェースは何なのか? を整理されてみると良いのではないでしょうか. おそらくですが,CDrawの存在目的は >int Draw(void)を呼び出すだけで各種描画が出来る であるはずです.(つまり,Draw()なる仮想関数の型を規定すること.) であれば,CDrawにて規定するメソッドは最低限 Draw() のみでよいと思います. //これだけかな. class CDraw { public: virtual ~CDraw(){} virtual int Draw() = 0; }; すべての派生クラスに必要になるものだけを基底クラスで用意する. (イ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 四角形に凹があるかについての問題です。
返信数: 6
閲覧数: 2833

Re: 四角形に凹があるかについての問題です。

えーと,まずその >他の人の解答例 というのは 正しい回答 なのでしょうか?っていう…( mk_func()とか余裕で0による除算とかしそうに見えるのですが) 以下,ざっと見での感想ですが, mk_func()が返すのは,引数で与えられる2点(x1,y1),(x2,y2)を通る直線上での,xに対するyの値 のように見えます. main()のif の計算式でやろうとしていることは,おそらくですが 「ある対角線から見て,残りの2頂点が反対側にあるかどうかを調べようとしている」のでしょうが, ・y座標のみで判定している → 例えば,1番目と3番目の頂点のx座標が等しいデータだったらダメじゃないの? ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXを必要とするフリーソフト
返信数: 106
閲覧数: 35199

Re: DirectXを必要とするフリーソフト

オフトピック
すみません,話と全然関係ないのですけど,
この[解決]というやつって,質問者以外でもつけれちゃうんですね.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: about the "C struct pointer"
返信数: 6
閲覧数: 2414

Re: about the "C struct pointer"

事態が不明瞭です.
まず,そのコードはどこから出てきたものなのでしょうか?

#単に型名とインスタンスとの区別がついていないだけにも見えますが…
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

カプセル化の話が既存のものから読み取りにくいのかもしれない(?)ので,簡単な例. //[Player.h] struct Player_t; //前方宣言 Player_t *CreatePlayerInstance(); //新しいPlayer_tインスタンスを生成し,そのインスタンスへのポインタを返す void ReleasePlayerInstance( Player_t *pReleaseTargetInstance ); //指定インスタンスを破棄する void SetPlayerStatusValue( Player_t *pSetTargetInstance, int statu...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

>重複する画像リソースなど問題は、画像管理マネージャに管理を一存して画像ファイル名を引数に画像管理マネージャから画像ハンドルを貰う方法があります。と言うか大抵そうします。 こんな感じでしょうか. ImgManager *GetImgManagerInstance(); //画像リソースを一元管理するオブジェクトへのポインタを返す int ObjectInitialize( Object *pObjInstance, const char *ImgFileName ) //←これはさすがに受け取るのだと思う { pObjInstance->ImgHandle = GetImgManagerIns...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

無名構造体がどうの の話は typedef struct ch_t //←ここに構造体の名前を書くようにしようね { int flag; double x,y; } ch_t; //そうすれば,別のファイルにて前方宣言が使える. //ch_tが定義されているヘッダをincludeしなくても struct ch_t; //このように「ch_tというstructがあるらしいよ」という宣言を書けば…(名前が無いとこれが書けない) ch_t CH; //これは無理だけど ch_t *pCH; //こっちが可能になる. ということです.(ch_tがどんな変数を抱えているかとかを知らなくていい場所にはそう...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

うーん,あと,私だったらなるべく各オブジェクトには自身の描画処理を行わせない方針でやるかも. 仮に各オブジェクトに自身の描画を行わせるという方式を取るのだとしても 画像のロードと始末とか まではやらせたくないかなぁ… 各コードがDXLibへ依存することは妥協するとしても 画像ロード(と破棄)はmain等の外側で行って,例えば //hImgにはpCHが示すインスタンスが描画の際に用いる画像のハンドル値を指定する. //この関数は,成功時には0でない値を,エラー時は0を返す. int Player_Init( ch_t *pCH, int hImg ) { //hImgが,ch_tの表示用に見合う...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

typedef struct { int flag; double x,y; } ch_t; これだと,flagやx,yを外部からいじれる→カプセル化 にはなっていない. それと,無名構造体は避けた方がよいです(前方宣言できなくなる). で,ch_t型インスタンスがもし自機1つ分しか作られないのであれば, 背景と同じようにch_t変数の存在を隠ぺいしてしまえば良いのかな. ch_t型を他のもの(例えば敵とか)でも使いまわす予定なら, 「新しいch_t型インスタンスを作成し,そのハンドルを返す」ような関数をPlayer.hにて公開し, その他の,現在ch_t*を引数としている関数の引数を,ch...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 一つのゲームを作るのに必要な時間
返信数: 44
閲覧数: 15452

Re: 一つのゲームを作るのに必要な時間

本当に作る気があるのかどうか疑問ですが… 最初は絵のことは忘れて, いくつかのノード(頭とか手の先とか間接)を線で連結した棒人間みたいなのから始めてはどうでしょうかね. キーフレームでのノード座標データさえ用意すれば間のフレームは自動で補間できるので, あとはまずゲームロジックの作成にだけ注力すればいい. (N88-BASICの時代ですが,実際にここまでは作ったことがある.  とりあえずなCPU側動作アルゴリズム等含めて,1週間もかからなかったハズ) その後,絵が欲しいなら,その棒人間をベースにして描いていけば効率が良いんじゃないかな? (必要な中割り(っていうのかな?)の枚数とかそのときの骨...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 川渡り問題
返信数: 2
閲覧数: 2374

Re: 川渡り問題

(1)両岸の状態(今現在何があるのか)を表現する手段(=データ)と,   その状態を画面に表示する手段とを用意する.   とりあえず初期状態の表示ができること. (2)ユーザ入力により両岸の状態を更新する箇所を用意する.   更新のたびに画面表示も更新される状態.   (ただし,まだ何の判定もない) (3)判定を追加.(食われる&クリア)   失敗あるいは成功を判定し,その旨を画面表示 (4)ファイルへの記録   ファイルに記録関連の処理を追加. (5)まとめて表示   具体的に何をするのかよくわからないけど要求されている機能を追加. こんな感じでいかがでしょう? (1)~(3)を1日,残りを...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 行をまたいだ文字列の抽出
返信数: 3
閲覧数: 1330

Re: 行をまたいだ文字列の抽出

1文字ずつ読んで行って判定すれば良いのではないでしょうか?

最初はHを見つける状態
 ↓    ↑
Fを見つける状態
 ↓
=を見つける状態 → 最初の状態
 ↓
値を読み取る状態
 ↓
読み取り終了

という風に状態遷移とかしてやればどうでしょう.

↓はCSVの話ですが,参考になると思います.
http://codezine.jp/article/detail/5531
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 6889

Re: 飛行機の水平器の計算について

>現青・基赤 = 0  : 現青と直交していて
>というのは現青・現赤の間違いですよね?

いいえ.

>黄色回転値=0 のときの赤ベクトル
たる 基赤 を求めるという話で連立方程式を立てているのに,基赤が入ってない式であるはずがない.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

>そんな少なくて良いんですか?
私なら,です.
ご自身がやれる範囲で最初から用意するものを決めればいいと思います.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 43055

Re: ゲームのオブジェクト指向について

私なら最初はこれだけかなぁ

コード:

  |

  |←shot

  ▲自機
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 6889

Re: 飛行機の水平器の計算について

お使いのライブラリ(?)でどう表せばいいのかは知りませんが,理屈がわかれば書けるんじゃないですか? 紙の上で前述3条件の連立方程式を解けば 基赤 が求まるでしょうからそれをそのままコーディングするとか. 後は回転量ですが,おそらく描画のためだけであれば 角度(θ)そのものが得たいのではなくて,その三角関数値(cosθとsinθ)が得られればよい のだと想像するので, 内積と外積からそれらを獲得するなりすればよいのではないでしょうか. ※1:基赤の解は当然2つ存在しますから,どちらの方向が妥当かの判断は必要と思います.(現赤と近い側とかでいいか) ※2:ところで,現青が「真上または真下」のときっ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 6889

Re: 飛行機の水平器の計算について

>その黄色の回転値=0 のときの,緑と赤のベクトルの向き を算出して, >それとの間の回転量を求めればよいのではないでしょうか. なんか激しく無視されていますが やりたいことはこれ↑とは全く違う話なのかどうかだけ教えてください.すっきりしないので. 一応,詳述しときますと, 貼られた図の3色の方向ベクトルをそれぞれ その色で,{現赤,現青,現緑}と書くとすると 私が言っている 黄色回転値=0 のときの赤ベクトル(これを以降 基赤 と書く)というのは,   現青・基赤 = 0  : 現青と直交していて   基赤.y = 0  : ワールド座標系において水平で   |基赤| = 1  : 単位ベク...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 正の足し算のはずが負になる。
返信数: 16
閲覧数: 4509

Re: 正の足し算のはずが負になる。

ところで初期化云々以前の根本的な話なんですが, >w [j]は正なので負なるはずはないんですが。。。 とのことですが, w[i][j]=a1*powf((h*h-dis_2[i][j]),3); この式って一般に ”負にならないようには見えない” のですけど,その点から勘違いされていたりはしないのでしょうか? コードが全体的にとても読みにくい→読みたくない ので,ざっと見での憶測ですけど, dis_2[][] は,(まともに動けば)粒子間距離の2乗値なのだと思うのですが 常に ( h*h(=400) >= dis_2[][] ) なる関係が成り立つような仕組みがどこかにあるんでしょうか?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 6889

Re: 飛行機の水平器の計算について

その黄色の回転値=0 のときの,緑と赤のベクトルの向き を算出して,
それとの間の回転量を求めればよいのではないでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 4588

Re: 画像処理のプログラムについて

「本当にやりたいこと」をご自身が完全に説明できない限り,内情を知らないこちらとしてはどうしようもないので, 一度そこらへんを整理してみたほうがよいかと思います. たとえば,現在既に実装されている「2値化」とか「グレースケール化」とかって”何やってるのかがはっきりわかる”処理ですよね. 仮に「2値化」という言葉を全く用いずにその処理内容を (画素ごとに輝度値と閾値とを比較して,輝度値>=閾値 であれば結果255に,そうでなければ0にするような処理がしたいです,みたく) 説明されたとしても,「ああ,こういうことがしたいんだろうなぁ」って想像がつく,というか. もしそうであれば,こちらも想像を働かせ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 数字の違う画像の取り込み法
返信数: 3
閲覧数: 2371

Re: 数字の違う画像の取り込み法

#include <iostream> #include <sstream> ... const char FileNameHeadPart[] = "icon_"; const char FileExt[] = ".png"; for( int i=1; i<=3; i++ ) { std::stringstream SS; SS << FileNameHeadPart << i << FileExt; //※LoadGraph()とかいうのの使い方は知らないので自分でやって. std::cout << "FileName = " << SS.str() << std::endl; }
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 正の足し算のはずが負になる。
返信数: 16
閲覧数: 4509

Re: 正の足し算のはずが負になる。

line108 : float q[N];
これの初期化も行ったけどダメ,ということでしょうか?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像検出のアルゴリズム
返信数: 2
閲覧数: 1293

Re: 画像検出のアルゴリズム

話がその文面どおりに簡単なものなら 単純なテンプレートマッチングでよいのではないでしょうか.
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 4588

Re: 画像処理のプログラムについて

いや,でも処理結果例が違ってますし……

仮に私が示した結果例が求めるものなのだとしても,何に困っているのかも良くわからないのです.
(2値化が書けてこの処理コードを書けないということも無いような気がしますので.)
本当にそれだけの話であれば,
とりあえず一番左の列(x==0)では,反転対象が存在しないので「上から見ていく」処理の対象となる列は x>1 でしょうから,

コード:

for( int x=0; x<画像幅; x++ )
{
  ・上(y=0)から順に見ていき,最初の黒の場所を見つける
  ・その左の場所を反転する
}
というだけのことになりますよ?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 4588

Re: 画像処理のプログラムについて

いつのまにか 白と黒を表す{0,1}の関係が逆転しているのかな? だとしても,本当にやりたい処理内容が何なのかがやっぱりわからないです. {0,1}だとどっちが何なのか混乱するので白と黒を { W,B } で表記することにすれば, 説明された文面からの私の理解は以下のようなことになります.  ・各列の中で,最も上にあるBを見つける  ・そのBの位置の左隣の要素を反転する 例で言うとこう.(0と1で示された例と同じ形のデータです) W B B B W W B B B W W B B B W W B B B W W B B B W  ↓ B W W B W W B B B W W B B B W ...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25417

Re: switchでループを抜ける方法

そのswitchによる分岐がどれだけのことをやっているのか,次第だと思います. swtichでやってることが「ちょっとしたこと」であって, 少数のパターンしかなく,分岐後の処理も2~3行程度のコードで済む程度……とかであればif~elseで良いわけだし, テーブルで済ませられるならそうすればいいし. 例えばswitchがやってることが プログラムの状態に関わる大きな流れの制御だったりする場合, Cなら関数ポインタ,C++ならStateパターンみたいなのを使うような場面かもしれませんし. //関数ポインタで処理分岐 int (*pCurrStateFunc)() = InitStateFunc;...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 4588

Re: 画像処理のプログラムについて

うーん,処理内容説明と出力例との対応がわからない…
例えば一番上の例で言えば,入力に0な箇所が無いのにどうして一番左の列の要素が反転されたのかが?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25417

Re: switchでループを抜ける方法

無限ループ+switch という状況が割とレアな気もしますが そういったものを書くとしたら大抵関数化していると思うので普通にreturnです.  ↓ どうしても関数化したくない場合 gotoは,一人で趣味で書いていてそのコードを読むのも触るのも自分だけ ということがわかっていて 且つ,今回のようなループ抜けのために限って ならば使うかもしれません. そうでないならば たとえ見栄えが少々悪くなっても フラグを用意します. //面倒だからifとswitchのハイブリッドで解決だ!…なんちゃって. while(1) { if( XXX ) {//wihleを抜ける処理はこっち break; } el...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 3687

Re: 実行時型情報を使って良いのか?

>そんな感じであっていると思います。 ご確認いただきありがとうございます. しかし,この方法だと例えば「要素がN種類あるうちの7種類をサポートするVisitor」 とか書くのが大変そうに思うのだけど,何か良い実装方法があるのかなぁ? //多重継承ってほとんど書いたことないけど //こんなにたくさん継承しなきゃならないとしたら,何か間違っているような不安な気分になってしまう class ConcreteVisitor_A_B_D_F_X_Y_Z : public Visitor_T<A>, public Visitor_T<B>, ... , public Visitor_T<Z> //ここが長...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 4588

Re: 画像処理のプログラムについて

>処理内容としては、画像を二値化(仮に黒を0、白を1とします)したあとに、その二値化した画像をY軸方向(画像を上から)からスキャンし、 >その列で一番初めの0の部分の座標(X.Y)を求めて、その座標をもとに横からスキャンし、先ほど求めた座標のひとつ前にある座標の値を変える(0の場合1に、1の場合0にする) 意味がよくわかりません. >画像をY軸方向(画像を上から)からスキャンし、 というのは, (x,0) → (x,1) → (x,2) → ... → (x,ymax) という順で見ていく,ということだろうと思いますが,x座標はどうやって決定するのでしょうか? >その列で一番初めの0の部分の座...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 3687

Re: 実行時型情報を使って良いのか?

便乗質問みたいになってしまうのですが Acyclic Visitor ってこんな感じで合ってますか? //------------------------------------- //ベースクラス //class AcyclicVisitorBase //{ //public: // virtual ~AcyclicVisitorBase(){} //}; // ↓訂正↓ class AcyclicVisitorBase { public: virtual ~AcyclicVisitorBase() = 0; }; AcyclicVisitorBase::~AcyclicVisitorBas...
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 3687

Re: 実行時型情報を使って良いのか?

普通に Shape::draw()のような仮想関数にしたくない理由があって
Visitorなどを考えておられるのだと思いますが,その際,

>そこで、Visitorパターンを用いることにしたのですが、これにも欠点があり、
この欠点とは,具体的にどういったことが問題になっているのでしょうか?
by usao
10年前
フォーラム: C言語何でも質問掲示板
トピック: 方向ベクトルから回転行列を取得したい
返信数: 5
閲覧数: 7715

Re: 方向ベクトルから回転行列を取得したい

>ベクトルAxisZの方向へ向く回転行列を取得したいです。

それだけでは何をしたいのかはっきりしません.


あるベクトル V が存在していて,
 R * V == AxisZ
となるような回転マトリクスRを求めたい,ということなのでしょうか?
もしそういう話であれば,VとAxisZの外積から,回転軸と回転量の情報が得られそうです.
任意軸周りの回転マトリクスを算出する手段さえ用意できれば,Rを求められるように思います.
(AxisZ周りの回転 に自由度があるので一意には定まらない気はしますが)

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