問題タブ [noise-generator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actionscript-3 - Flash10でのエンジンノイズのシミュレーション
私はフラッシュで「レトロ」なバイクゲームに取り組んでいます。これはメガドライブのロードラッシュシリーズに似ています。フラッシュのサウンドサンプリング機能で長い間遊んだ後、「正しい」方法を見つけることができません。ノイズを発生させます。
私は基本的に、回転数に合わせて正弦波の周波数を変更しようとしています。回転数が上がると、周波数も変わります。それはある程度機能しますが、実際のエンジンのようには聞こえません(私はしばらくバイカーでした)そして私は毎日自転車に乗って仕事をしているので、それがどのように聞こえるかを「知っています」:-p)。
私は現実的な音をあまり求めていません。「大丈夫」と聞こえる音、またはゲームをプレイしているほとんどの人が実際に音が回転数と速度に関連していることに気付かず、満足しているほど良い音です。フラットmp3。
正しい単語が見つからないため、グーグルで検索できないようです。「エンジン」は、ゲームエンジンなどですべての結果を薄めるだけです。
私が見つけた記事の大部分は、サンプリングの使用も提案していますが、これには2つの大きな問題があります。
- 私は自転車を持っていて、音を録音することができましたが、rpmのサンプルを記録する-1000間隔でサンプルを行う場合は15と言います(私のgsxrは16kまで回転します:-p)次に、さまざまな負荷、つまり0mph、10mph、20mph、30mphでそれぞれをサンプリングする必要があります、エンジンノイズは負荷によって大きく異なるため、40mph(合計でなんと80サンプル)ですが、rpmサンプルに加えて負荷を何らかの方法でシミュレートできるかどうかはわかりませんか?
- これらのサンプルはすべて、再生する前にダウンロードする必要のあるバイトになります。
matlab - matlabの一般化されたガウスノイズジェネレータ
Matlabで一般化ガウスノイズジェネレーターを作成する必要があります。
v
GGNは、次の分布のランダム信号です。
ここで、pは値vとしてカウントされる確率です。
これは、ガンマ関数gamma
の値を計算するMatlab関数に組み込まれていることに注意してください。
私は次の方法でジェネレーターを作成しようとしていました:
しかし、ループは無限のようで、何かがおかしいです。
また、次の点にも注意してください。このジェネレーターは、平均値と標準偏差
beta = 2
を持つ正規ガウス分布に等しい値を返す必要があります。mi
alfa^2/2
編集
OK、ダグは私を正しい方向に向けました。v
多かれ少なかれ選択される可能性が高い値を作成し(10 * stdが非常に良いと仮定しました)、確率条件を確認する必要があります。(whileループで)確率チェックごと
に新しい値を描画することも重要です。
だから問題は解決しましたprob
このジェネレータを使用すると、次のものを生成できることに注意してください。-
ガウスノイズの場合beta = 2
-ラプラシアン(インパルス)ノイズの場合beta = 1
noise - 良いパーリン ノイズ リソース/実装?
パーリンのノイズ生成について詳しく説明している優れたリソースはありますか? ほとんどの言語でノイズを生成するライブラリが利用できることは理解していますが、楽しみ/経験のために独自のライブラリを作成することに興味があります。これはかなり人気があるようですが、1 次元ノイズの詳細な説明しか提供していません。Google 検索は、ほとんどがジェネレーターの作成方法ではなくアプリケーションに焦点を当てているため、これまでのところ比較的役に立ちませんでした。
本や Web サイトは歓迎します。その焦点が生成自体でなくても、実装の完全な説明、または少なくとも関連する概念を提供して、自分自身を「発見」できる限りは歓迎します。
r - Rでピンクノイズをシミュレートする方法
の出力を時系列として扱うことで、ホワイトノイズを実現できることを私は知っていますrnorm()
。ピンクノイズをシミュレートする方法について何か提案はありますか?
string - テキストにノイズを追加する
テキスト文字列にノイズを追加するための既知のアルゴリズム/戦略があるかどうか疑問に思います(たとえば、ランダムな文字シーケンスを時々追加するなど)。
少し使用できなくするためだけに、テキストを完全に破棄したくありません。また、変更を元に戻すことには興味がありません。必要に応じて、最初に作成したソースから元のテキストを再作成できます。
もちろん、これを行うための非常に基本的なアルゴリズムは簡単に実装できますが、おそらく誰かがこれのためにいくらか洗練されたアルゴリズムをすでに作成しています。このようなJava実装が利用できる場合は、さらに優れています。
random - ランダム アクセスを使用したシード付き 3D ホワイト ノイズ ランダム ジェネレーター
乱数発生器の経験はほとんどありません。C で標準の rand 関数を使用し、パーリン ノイズを使用しました。
しかし今、1つの値を「選択」するだけで、同じ値を再選択すると、ホワイトノイズ(パーリンの滑らかさなどはありません)で満たされた解像度NxNxN(Nはおそらく1e6以上)の立方体が必要です毎回同じ結果。アプリケーションを再起動した場合に結果が同じになるように、シードする必要があります。安全でも何でもなく、人間が考えるだけで値を予測できないように、十分にランダムであってはなりません。本当にコンピューターで解析すれば、予測可能でOKです。
標準の C rand 関数を使用して、シードを設定し、3 次元に対してネストされた for ループを実行し、座標に到達するまで毎回乱数を生成するようなものです。もちろん、それはひどく遅いです。速いものが必要です!
私はインターネットを検索しましたが、同時に多くのことを見つけましたが、何も見つかりませんでした。間違ったキーワードを探しているのかもしれませんが、使用できるものは見つかりませんでした。
誰でも始めるのを手伝ってもらえますか? コード?リンク?アルゴリズムを理解しているかどうかはあまり気にしませんが、実装と使用が簡単で、特に高速であるべきです。
random - ワールド ジェネレーション ノイズ コンセプト
それで、私は自分のゲームに取り組んできましたが、何かで行き止まりになりました。ワールドジェネレーションのノイズの概念がわかりません。
昔、500x500 の画像をほとんどコーディングして、プログラムに「この種の * ピクセルが近い場合、それをコピーする可能性が % ある」と伝えることで、独自の「マップ ジェネレータ」を作ろうとしました。
しかし、それはかなり醜い結果になったので、私の世界世代に代わるより良いものを見つけようとしています.
現時点では、ワールド ジェネレーションが 2D のみ、つまり 3 タイルのみのフラットなランドスケープをサポートするようにしたいと考えています。ただし、使用する「ノイズ」ジェネレーターが何であれ、12 を超える異なるバイオーム、80 のタイルなどを追加し、丘などもあるという意味で、マップをより 3D にしたいと考えています (ただし、 2D ゲーム用です)。
そのため、マップの「制御された」ノイズ生成の概念を理解しようとしているので、独自のジェネレーターを作成できます。
私は多くのパーリン ノイズ ジェネレーターのソースを調査しましたが、プログラムが実行しているように見えるすべての複雑な計算の背後で何が起こっているのかを完全に理解することはできません。
それで、私の質問は、制御されたノイズ生成の背後にあるアイデアは何ですか? ほとんどのプログラムは実際に何をしていて、自分自身にコピーしてワープしようとする必要がありますか?
java - 許容可能な動作をテストしやすくするためにクラスを分割していますか?
これは主観的な質問だと思いますが、答えは見つかりませんでした。ただし、詳細を説明します。
非常に異なる設定で特定のアルゴリズムを実行できるように、多くの構成メソッドを持つクラスがあります。適切に構成した後、メソッド「generate()」を呼び出すだけで、塗りつぶされた2D配列が返されます。それはテストするのが難しい方法です。高さマップを返すので難しいです、ランダム性と大量のデータが含まれています。通常、分割しますが、実際には同じ理由でデータとアルゴリズムのステップが変更され、一方を他方から分離して使用することはないため、カプセル化が壊れます。ランダム性(実際に行っていること)をモックできることは知っていますが、どちらの方法でも、テストを作成するにはデータが多すぎます(たとえば、32 x 32のマップだけでは、1回のテストで1024個のアサーションが必要になります)。 。それに加えて、大きなマップの生成には最大3〜4秒かかる場合がありますが、これはテスト環境では明らかに良くありません。
また、最初にデータをアルゴリズムから分離し、アルゴリズムを純粋関数(データなし、引数のみ)にすることを試みました。これはテスト可能でしたが(アルゴリズムを分割したため)、これにより、多くの引数が渡され、かなり手続き型のコードになります。
ですから、ここでどのように進めるかはわかりません。クラスを分割すると、テストと理解が容易になりますが、カプセル化が非常に悪くなります。実用的であれ理論的であれ、このテーマについての考えをいただければ幸いです。
前もって感謝します。
編集:これは私が書いたコードであり、手続き型です。
JavaRandom、Attenuation、およびRandomNumberProcessorは、一緒に保持する必要があるクラスです。
これは、アルゴリズムで使用されるデータです。
}
これはアルゴリズムの大部分です:
}
これは、アルゴリズムの他のステップです。
}
}
android - プログラムは実行ごとに同じ「乱数」を生成します
c4droid IDE を使用して、Android 端末用にランダムに生成された世界を持つ単純な ASCII スタイルのゲームを作成しようとしています。これは C++ をサポートしており、基本的にはarray[width][height]
ルールを使用してタイルを生成しています。rand()%2 - 1
歩けるタイルを作成します0
。壁です。しかし、問題があります。マップを「ランダムに」生成するたびに、同じように見えます-rand()
実際にはランダムではないためです。HDDや別の部品が作るエントロピーを利用するという話を聞いたことがあります。問題は、Androidで使用しているため、C ++がJavaほど使用されていないため実装するのが奇妙であるため、Googleで解決策を見つけることができなかったことです。とても短い質問:Androidでc ++を使用して「かなり本物の」乱数を生成するにはどうすればよいですか?
random - シード疑似乱数ジェネレーター
シード整数と他の 2 つの整数 x と y に基づいて動作するパーリン ノイズ ジェネレーターを開発しています。
ここまでで、疑似乱数ジェネレーターは次のようになります。
しかし、この実装にはいくつかの問題があります。まず、戻り間隔が一定ではなく (理想的には、[-1, 1] または [0, 1] で作業したい)、負の x および y 値の場合、パターンがブロック状になり、有機的に見えなくなります。私のニーズに合うように私の式(またはまったく新しいもの)を変更する方法はありますか?