問題タブ [bresenham]

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 に答える
350 参照

ipad - iPadのポイントにフリーハンド描画を実装する際に問題が発生しない

ある種のブラシを使った「ブラシ」のようなフリーハンドのiPad描画アプリを作っています。私の問題は、touchmoveイベントが高速移動のいくつかのポイントを見逃していることです。

だから私はブラシパターンをプロットするために前の場所と現在の場所の間のこれらすべての中間点を取得したいと思います。

これらすべてのポイントを取得するためにブレゼンハムの線アルゴリズムを実装しましたが、パフォーマンスが低下します。これを行うための最良の方法を教えてください。

ありがとう 。

0 投票する
3 に答える
3578 参照

c++ - OpenGL で Bresenham のアルゴリズムを使用して円を描く

アルゴリズムで円を描くことができます。ただし、境界は奇妙に見え、ピクセルは互いに離れているように見えます。もっと近くにいてほしい。ポイントサイズを大きくしてみました。しかし、結果はあまり良くありません。それで、ピクセルを完全に埋めることができればもっと良いのではないかと考えていました.(正方形だと思います.)どうすればいいですか?現在は次のようになっています。

http://img690.imageshack.us/i/circlev.jpg/

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

graphics - 4 連結線を描画するアルゴリズム

4 連結線を描画するためのアルゴリズム (Java でコード化されていれば問題ありませんが、Java に変換するのに十分明確なものであれば問題ありません) を探しています。Bresenham のアルゴリズムが最も広く使用されているようですが、私が見つけた理解可能な実装はすべて 8 連結です。OpenCV のcvline関数には明らかに 4 接続バージョンがありますが、ソース コードは、凡庸でほとんど C を理解できないプログラマーである私にとって、理解できないものです。他のさまざまな検索では何も見つかりませんでした。

誰でも提供できるヘルプをありがとう。

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

optimization - ピクセルの代わりに多くの水平線と垂直線を描画してブレゼンハムを最適化する

サイクルごとに多くのピクセルを描画できる非常に効率的な水平および垂直の線画関数のセットがあります(水平の場合は約4ピクセル/サイクル、垂直の場合は約0.25ピクセル/サイクル)。Bresenhamの線画を使用しています。任意の線を引くアルゴリズム。ただし、これには、比較的遅い(〜0.03ピクセル/サイクル)単一描画ピクセルルーチンの呼び出しが含まれます。

ブレゼンハムのアルゴリズムによって描かれた線のほとんどが、それらの間に十分な距離がある水平および垂直のストリップを示していることに気づきました。DrawPixelへのこれらの個々の呼び出しをDrawHorizおよびDrawVert描画ルーチンへの呼び出しに置き換えることが可能かどうか誰かが知っていますか?誰かがコード例を持っていますか?私はすでに試しましたが、成功は限られており、ほとんどの場合、出力が壊れていました。間違った方法でアプローチしているのではないかと思います。

どうもありがとう

0 投票する
4 に答える
1262 参照

algorithm - Bresenham ラインを作成するための * ヒューリスティック

A* ヒューリスティックと Bresenham アルゴリズムの仕組みについて私が理解していることから、現在の状態と目標の状態のみがヒューリスティック関数に渡されるため、これは不可能な場合があります。しかし、誰かがこの問題に対する賢い解決策を持っているかもしれません。

A* を使用してグリッド上のパスを計画しています。現在の状態と目標または障害物を回避する次のターンの間に空きスペースがある場合に、最適なパスがブレゼンハムの線をたどるヒューリスティックが必要です。

問題を説明するためのいくつかの画像を次に示します。

マンハッタン距離:

ワールド内の動きがグリッド上のチェッカーのように機能する場合、これはまったく問題ありませんが、最終的には A* パスを連続平面上のモーションに変換するので、これは非常にうまく機能します。

マンハッタン距離ヒューリスティックを使用した赤から緑への最短経路

ユークリッド距離:

改善されましたが、まだ完全ではありません。端の直線に注目してください。対角線は、私が望んでいるものと同じくらい簡単に対角線のままにすることができました。

ユークリッド距離ヒューリスティックを使用した赤から緑への最短経路

私が欲しいもの:

Bresenham のラインは、次のターンまたはゴールに引き寄せられます。

ブレゼンハムのラインを使ってゴールに到達する、私が実際に望んでいる最良のパス

ここで良いリソースを見つけましたhttp://theory.stanford.edu/~amitp/GameProgramming/Heuristics.htmlは、私が探しているものに触れていますが、最初からゴールまでブレゼンハムの線を引くためにしか機能しないようです。私が欲しいのは、ブレゼンハムの線が障害物を迂回して次のターンに引き寄せられることです。

この問題への良いアプローチのアイデアはありますか?

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

algorithm - ブレゼンハムアルゴリズム

重複の可能性:
ブレゼンハムを使用して任意の太さの線を作成するにはどうすればよいですか?

ブレゼンハムアルゴリズムを使用して、1ピクセルを超える太さの線を描画するにはどうすればよいですか?xとyからのオフセットでアルゴリズムを何度も実行する必要がありますか?

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

scala - Bresenham のライン アルゴリズム エラー

Scala Javaコードに適応したブレゼンハムのアルゴリズムの次のコードがありました。

ほとんどすべての行ですべてうまくいきますが、上から下への垂直線を計算しようとすると (つまり(0,3) -> (0,0) )、何も得られません。
問題はそれほど難しくなく、上記のケースではノーと言うところにあるので、私は自分自身について愚かだと感じてhasNextます)。 ポイントを交換することで対処しましたが、明らかに悪い解決策です。アルゴリズムを一般化するのを手伝ってくれる人はいますか?

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

python - ブレゼンハム線は終わらない

ウィキペディアのBresenham アルゴリズムを Python で実装しましたが、1,0 から 0,1 までのように一部の行では機能しません。停止せず、非常に長い行を作成し続けます。

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

java - 簡素化された Bresenham のライン アルゴリズム: *正確に*何をしますか?

ウィキペディアの Bresenham のライン アルゴリズムに関する記事に基づいて、そこで説明されている簡略化されたバージョンを実装しました。私の Java 実装は次のようになります。

errこれで、y 軸のステップと比較した x 軸のステップの比率を制御することが理解できました。 if ステートメントが正確になぜ、どのようerrに、コードに見られるように変更されたのか。

ウィキペディアはこれ以上詳細な説明や情報源を示していないので、私は疑問に思っています:

Bresenham のライン アルゴリズムの単純化されたバージョンを使用して、水平ステップと垂直ステップの間の正しい比率を維持するために、正確に何errをし、なぜ正確に示されている方法dxで使用されているのでしょうか?dy

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

c++ - C ++ Bresenhamのラインアルゴリズムは円弧を描いて回転させます

ブレゼンハムの直線アルゴリズムで円弧を作る方法を探しています。このアルゴリズムは完全な円を描画しますが、円弧 (0 から Pi まで) を描画し、それを 30 度 (たとえば) 回転させる必要がある場合はどうすればよいでしょうか?