問題タブ [mandelbrot]

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.

0 投票する
1 に答える
1153 参照

fractals - マンデルブロの境界はなぜ 2 なのですか?

|z| までマンデルブロー点を繰り返している理由を理解しようとしています。< 4. なぜ 4 なのか? 何か法律があるのでしょうか?それとも統計測定に基づいていますか?

ありがとう、イガル

0 投票する
2 に答える
606 参照

fractals - フラクタル、特にマンデルブロ集合を理解する

「フラクタル内をズームすればするほど、実行する必要のある反復が増える」という引用をどこかで読んだことを理解するために、ここで頭を悩ませています。

これまでのところ、そのことを証明する数学/学術論文を見つけることができませんでした。http://warp.povusers.org/Mandelbrot/から取得した、マンデルブロ集合を計算する小さなコードも見つけること ができましたが、ズームが反復にどのように影響するかを理解できませんでした。

ありがとう!

0 投票する
2 に答える
1524 参照

java - マンデルブロ集合垂直表示

マンデルブロ集合が水平に配置されているように、マンデルブロ集合を垂直に表示する方法を考えています。

'ブロト

縦軸から小さい方の寸法を見るようなものだと思っていました。

0 投票する
2 に答える
2596 参照

java - 複数のスレッドをAWTコンポーネントにペイントするにはどうすればよいですか?

編集:解決しました、私の解決策を以下で見てください。

まず、これが私の最初の質問ですので、間違えた場合は教えてください。

トレーニング目的で、Javaでマンデルブロフラクタルプログラムを作成しようとしています。私が欲しいすべての機能にとって理想的なのはFractalizer(http://www.fractalizer.de/en/)ですが、今のところ、(代わりに)画面にマンデルブロ集合を描画するプログラムに満足しています。 、たとえば、画像ファイルへの書き込み)。もちろん、プログラムを高速にしたいので、計算を複数のスレッドに分割して、マルチコアプロセッサを利用できると思いました。たとえば、クアッドコアシステムでは、画像は2x2 = 4の画像に分割され、それぞれが個別のスレッドによって計算されます。これらのスレッドはすべて、計算時にピクセルを描画するGraphicsオブジェクトを取得します。

これを機能させるための最初の試みは、スレッドをBufferedImage.getGraphics()に描画させ、画像が完成していない限り、paint()メソッドが常にrepaint()を呼び出すようにすることでした。

(waiterThreadは、すべての計算スレッドを次々に結合します。waiterThreadが有効である限り、少なくとも1つの計算スレッドはまだ終了していません。)

これは機能しますが、頻繁に再描画されるため、キャンバスに醜いちらつきが発生します。

次に、小さなテストプログラムを使用して、Graphics.draw * anything *が、paintメソッドが戻る前に画面に即座に描画されることを発見したので、現在のアプローチは次のとおりです。

  • 2x2(<4コアシステムでは1x1)のMandelbrotCanvasオブジェクトを含むGridLayoutを備えた1つのパネル
  • 各MandelbrotCanvasオブジェクトは、最初のpaint()呼び出しで、計算スレッドを初期化し、独自のGraphicsオブジェクトを渡します(実際には、1つのGraphics呼び出しを複数のグラフィックに渡すカスタムGroupGraphicsクラスを使用して、画像をBufferedImage.getGraphics()に入れますが、これは重要ではありません)、計算スレッドを開始します。
  • パネルは、paint()メソッドで、各MandelbrotCanvasesから計算スレッドをフェッチし、それらをjoin()します。

残念ながら、これは黒い画面しか作成しません。計算が終了した場合のみ、画像が表示されます。

複数のスレッドを1つのコンポーネントにペイントする正しい方法は何ですか?

編集:

私が知らなかったこと:イベントディスパッチスレッドのみがAWTコンポーネントにペイントすることを許可されています(大まかに話されています)。つまり、上記の最後のアプローチはおそらく機能しない可能性があります-明らかに、例外をスローすることになっていますが、私はしませんでした1つ取得します。私の解決策は、最初のアプローチを使用することです-画像をBufferedImageに描画し、それをCanvasに描画します-唯一の変更は、update()メソッドをオーバーロードして、ペイント領域をクリアせずにpaint()メソッドを呼び出すことです。

したがって、一般的な質問(「複数のスレッドをAWTコンポーネントにペイントさせるにはどうすればよいですか?」)に対する私の答えは次のようになると思います。できません。許可されていません。スレッドがBufferedImage.getGraphics()に描画し、その画像を繰り返し描画します。ちらつきを避けるために、上記のようにupdate()メソッドをオーバーロードします。(今は本当に素晴らしいように見えます。)私の場合は使用できませんが、それでも良いもう1つのヒントは、再描画する必要のある領域を指定するために長方形の引数を取るrepaint()のバリアントがあることです。時間引数(ミリ秒単位)をとるバリアント。したがって、再描画をすぐに実行する必要はありません。

EDIT2:このリンクは非常に役立つ情報を提供します:http://java.sun.com/products/jfc/tsc/articles/painting/index.html

0 投票する
2 に答える
598 参照

c# - マンデルブロー集合の C# 構造体?

以前、C#.Net Mandelbrot セットに関する質問を投稿しましたが、これは有益な回答でしたが、この Mandelbrot セットに戻って、(虚数と実数) 座標を定義する double 変数に構造体を実装する必要がありました。

構造体を初めて使用し、少し錆びている人として、私が間違っていることと、上記のコードを見るだけで改善する方法について少しアドバイスをお願いします。わずかに最適化できると確信しています。 . これは構造体を利用する正しい方法ですか? そうでない場合、代替手段または最良の手法は何ですか? ありがとう。

0 投票する
1 に答える
339 参照

c++ - マンデルブロー セット ズーム

私は C++ でのプログラミングにかなり慣れていないので、改善するためにマンデルブロー セットのコンソール アプリケーションを作成しようとしています。ほぼ完璧に動作するようになりました。画像が生成され、ズームイン/ズームアウトし、非常に簡単に移動できます。ただし、私が抱えている問題は、画像の端にズームインし始めると、端が「切り取られ」始めることです。

ズームアウトした画像:

http://i.imgur.com/Fy70o.png

少し拡大した画像 - ご覧のとおり、最後の「円」の半分が切り落とされています。

http://i.imgur.com/1nlVP.png

最後に、ズームインすると、最後の「円」全体が完全に切り取られています。

http://i.imgur.com/lao8j.png

ズームインし続けると、大きな円のエッジも切り刻まれ始めます。なぜこれが起こっているのか完全にはわかりませんが、ズーム方法が何らかの原因であると思います。

アルゴリズム計算関数のソースコードは次のとおりです(エラーがあると推測しています):

ソース コード全体については、次の URL にアクセスしてください (私の予測は間違っている可能性が高いため): http://pastebin.com/WhbS0WYE

任意の提案および/または支援を歓迎します。前もって感謝します!

0 投票する
1 に答える
267 参照

c - Cでのbmpセグメンテーション違反

正方形のフレームでフラクタル(マンデルブロとブッダブロ)のbmp画像を作成しています。幅を1000ピクセルにすると問題ありませんが、幅を2000に増やすと、プログラムの最初の行でセグメンテーション違反が発生します。何が起こっていますか。これが私のコードです:

..。

0 投票する
2 に答える
548 参照

c++ - マンデルブロはズームするが、画像がずれて縮小する

私はマンデルブロー集合を行ってズームしようとしていますが、パターンのズームは非常に面倒です。ズームすると完全にズームしますが、画像サイズは元の半分に縮小されます。次回ズームすると、写真のサイズが大きくなり、表示ウィンドウをスキップしようとします。コードは c++/opengl です。ここに投稿する前に、コードを少しきれいにしようとしました。

実行時

1)ここに画像の説明を入力

2)ここに画像の説明を入力

3)ここに画像の説明を入力

0 投票する
1 に答える
725 参照

c++ - マンデルブロ セットを 2 回ズームすると、目的の場所にズームできません

opengl/c++ を使用してマンデルブロー集合を描画し、ズームインしようとしています。初めてズームして、必要な場所を(クリックして)ズームすることができますが、次にズームしようとすると、ズームするつもりだった場所がズームされず、代わりにシフトしてズームしたい場所から少し離れてズームしますズーム。私が使う

デカルト座標 [-2,2] の観点からマウスがクリックされた場所を計算する

px と py はピクセル座標です

0 投票する
1 に答える
324 参照

php - マンデルブロを正しくズームするには?

マンデルブロを拡大しようとしていて、この質問を読みました:マンデルブロ集合への単純なズームを実行する方法ですが、理解するのが難しく、うまくいきません。次のように新しい実数と複素数を計算すると:

新しいマンデルブロは両軸で少し歪んでいますか? なにが問題ですか?以下に例を示します: http://www.phpdevpad.de/index.php?id=190