問題タブ [polygons]

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

c# - ドットで埋められたポリゴンを作成します

代替テキスト以下のコードを使用してポリゴンを作成しています。このポリゴンの表面を黒い点で塗りつぶしたいのですが、どうすればよいですか。次に、このポリゴンをビットマップまたはメモリストリームに変換したいのですが、どうすればよいですか?

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

c++ - OpenGL スムーズ ポリゴン

OpenGL を使用してこれを滑らかなポリゴンにしようとしていますが、何もしていません。誰かが私が間違っていることを説明してもらえますか?

前もって感謝します!

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

algorithm - CUDA 効率的なポリゴン塗りつぶしアルゴリズム

CUDAで実行できる、閉じたポリゴンを塗りつぶすための効率的な塗りつぶしアルゴリズム(例:スキャンライン塗りつぶしなど)が必要です。何か提案はありますか?

リプレイをお寄せいただきありがとうございます。

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

math - 開始点と終了点の法線を指定して、3D 3 次ベジエ曲線上の点の法線を計算する方法は?

単一の 3D 3 次ベジエ曲線を使用して「3D リボン」をレンダリングしようとしています (リボンの幅は一定です)。最初と最後の制御点には法線ベクトルが関連付けられています (これらの点の接線に対して常に垂直であり、それらの点でのリボンのサーフェス法線を記述します)。法線ベクトルをスムーズに補間しようとしています。カーブのコース。

たとえば、文字「C」を形成する曲線が与えられ、最初と最後の制御点の両方が上向きのサーフェス法線を持っている場合、リボンは平らに始まり、地面に平行になり、ゆっくりと回転し、次に平らに終わり、最初のコントロールポイントと同じ方法。これを「スムーズに」行うには、カーブの途中で外側を向く必要があります。現時点では (この場合)、すべてのサーフェスを上向きにすることしかできませんでした (中央の外側ではありません)。これにより、中央に醜い遷移が作成されます。

説明するのは非常に難しいので、この例の現在の外観 (すべての面が上を向き、中央で鋭く反転) とどのように見えるか (滑らかな移行、面がゆっくりと回転) を示すいくつかの画像を以下に添付しました。銀色のフェイスが前面、黒色のフェイスが背面を表します。

正しくありません。現在の外観は次のとおりです。

正しいリボン http://img211.imageshack.us/img211/4659/ribbonincorrect.th.png

正しい、それはどのように見えるべきか:

正しくないリボン http://img515.imageshack.us/img515/2673/ribboncorrect.th.png

私が本当に必要としているのは、3D 3 次ベジエ曲線上の任意の点に対してこの「ハイブリッド法線ベクトル」を計算できることだけです。ポリゴンを問題なく生成できますが、スムーズに回転させる方法がわかりません。描かれているように。どうやって進めていくか完全に行き詰った!

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

javascript - ポリゴンを3Dで「並べ替える」方法は?

私はまだ「javascript 3d エンジン」に取り組んでいます ( stackoverflow 内のリンク)。最初は、すべてのポリゴンが立方体の面だったので、平均 Z で並べ替えるとうまくいきました。しかし、今は「進化」しており、正しい順序でポリゴン (4 つ以上の頂点を含む可能性があります) を描画したいと考えています。つまり、カメラに近いポリゴンが最後に描画されます。

基本的に、それらを回転させて2Dに「遠近法」化する方法は知っていますが、正しい順序で描画する方法はわかりません。

明確にするために:

誰でも助けることができますか?

ps: 解決策を探して思いついたいくつかの「キャッチ フレーズ」: Z バッファリング、レイ キャスティング (?!)、平面方程式、ビュー ベクトルなど - 簡単に理解できる答えが必要だと思います。こいつに尋ねた。ありがとう。

p.s2: ポリゴンの重なりや交差についてはあまり気にしません...だから、画家のアルゴリズムは確かに良いかもしれません。しかし:それは正確には何ですか?ポリゴンの距離を決定するにはどうすればよいですか?? 多角形には多くの点があります。

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

api - KML ポリゴンのカラーリングとマウス クリック

私はhttp://workfoldr.com.s118234.gridserver.com/gmaps/と KML ファイル (@ http://workfoldr.com.s118234.gridserver.com/gmaps/file.kmzで見つかりました) で作業しています。色で塗りつぶされたポリゴンがあるはずだと明確に述べられています。

しかし、何も記入されていません。なぜですか?

また、マウス クリック イベントをバインドする必要がある場合もあります。それは gmap API の単純なイベント ハンドラですか?

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

flash - Box2Dでカスタムポリゴンを描画する

Flashゲームを作成していますが、Box2Dで多角形を描画しようとしたときに、非常に奇妙な問題が発生しました。

私が使用するコードは次のとおりです。

ここで、vertexArrayは、4つのb2Vec2頂点を含む有効な配列であり、凸形状を構成します。

問題は、私がテストしたときに、衝突がそのボディに対して正しく機能しないことです。他のほとんどのオブジェクト(敵、ユーザー制御のキャラクター)は、体がまったくないかのようにまっすぐ通過します。一部のレイキャストも通過します。

腹立たしいことに、私が持っているある種の体(カスタムの敵)は、どういうわけか体を検出して衝突します。特定の種類の敵が試みるレイキャストは機能ます-キャラクターがポリゴンの後ろに隠れているとき、彼らは彼を見ることができないようです。

もう1つの奇妙なことは、同じコードを試してみると、SetAsArrayではなくSetAsBoxのみを使用すると、正常に機能することです。

カスタムのContactListenerクラスを使用していますが、連絡先のフィルタリングを行っていません(気付かないうちに行うことができない場合)。

Box2D2.1aのFlash9バージョンを使用しています。

助言がありますか?私は明らかな何かを見逃していますか、それとも私(神は禁じられています!)がバグを発見しましたか?ご協力いただきありがとうございます!

アンドレイ

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

2d - 長方形で塗りつぶして、多くの(小さい)ポリゴンと1つの(大きい)ポリゴンの交差をチェックしますか?

私は2D計算幾何学/GISの問題を抱えていますが、これは一般的であるはずであり、使用する既存のコード/ライブラリを見つけたいと思っています。

問題は、小さなポリゴンの大きなセット(数千)のどのサブセットが単一の大きなポリゴンと交差するかを確認することです。(「小さい」と「大きい」とは、ポリゴンを定義するポイントの数ではなく、ポリゴンがカバーするスペースの量を指しますが、一般に、ポリゴンを定義するポイントの数は、その幾何学的サイズにほぼ比例すると仮定します。 。そして、比例感を与えるために、「大きい」を米国の州の多角形、「小さい」を町の多角形と考えてください。)

1つの大きなポリゴンPに対して各小さなポリゴンpに対して呼び出される、標準のCheckIfPolygonsIntersect(P、p)関数を使用した単純なソリューションが遅すぎると仮定します。大きなポリゴンを前処理して、小さなポリゴンの大部分の交差チェックを簡単にする方法があるようです。特に、大きなポリゴンを部分的/ほぼ塗りつぶす小さな長方形のセットを作成できるようです。同様に、実際には大きなポリゴン内にない大きなポリゴンの境界ボックスの領域を部分的/ほぼ埋める長方形の小さなセットを作成できます。次に、小さなポリゴンの大部分を簡単に含めるか除外することができます。大きなポリゴンの境界の範囲から完全に外れている場合は、除外されます。それらが、内側の境界の長方形であるが外側のポリゴンの長方形の1つの境界の内側に完全にある場合、それらは除外されます。それらのポイントのいずれかが内部長方形のいずれかにある場合、それらは含まれます。また、上記のいずれにも当てはまらない場合にのみ、CheckIfPolygonsIntersect(P、p)関数を呼び出す必要があります。

それはよく知られているアルゴリズムですか?任意の(凸面または凹面)ポリゴンの内部/外部長方形の妥当なセットを計算するための既存のコードを知っていますか?長方形はすべての場合に完全である必要はありません。それらは、ポリゴンの大部分と、ポリゴンの内側の境界が正しいが外側のポリゴンの領域の多くを埋める必要があります。

これらの長方形を計算する方法の簡単な計画は次のとおりです。

  • 大きなポリゴンのバウンディングボックスを取り、その上にポイントのたとえば10x10グリッドを作成します
  • 各ポイントについて、ポリゴンの内側か外側かを判断します
  • 長方形のエッジの1つがポリゴンのエッジの1つと交差するまで、4つの方向のそれぞれで繰り返し拡張することにより、各ポイントを長方形に「成長」させます。この場合、行き過ぎになります(これは、実際には「バイナリ」で行われます。 「検索」のような反復なので、数回の反復で、各方向に拡張する正しい量を見つけることができます。もちろん、エッジを一度に1つずつ最大化するか、互いに協調して最大化するかという問題があります)
  • 別のポイントの拡張によってカバーされる、まだ拡張されていないグリッドポイントはすべて消えます
  • すべてのポイントが展開される(または消える)と、内側と外側の長方形のセットができあがります。

もちろん、大きなポリゴンの特定のクレイジーな凹型の形状は、いくつかの貧弱な/小さな長方形につながる可能性があります。しかし、ポリゴンがほとんど合理的であると仮定すると(たとえば、米国の州の形状であるとすると)、優れた長方形のセットが得られ、後で行う数千の交差チェックを大幅に最適化できるようです。 。

そのアルゴリズムの名前(およびコード)はありますか?

編集:私はすでに四分木を使用して、大きなポリゴンの境界長方形と交差する可能性のある小さなポリゴンを決定しています。したがって、問題は、これらのポリゴンのどれが実際に大きなポリゴンと交差するかを確認することです。

助けてくれてありがとう。

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

r - ポリゴン レイヤーの下の等高線を使用してポリゴンをカットする

標高に応じて、ポリゴンレイヤーを2つの部分(上部と下部)にカットしたいと思います。多角形は凸でも凹でも、カットする位置もバラバラです。等高線の間隔は 5m です。つまり、1m 間隔など、非常に凝縮された等高線を使用して等高線を生成する必要があるかもしれません。ArcGISまたはRでそれを行う方法について何か考えはありますか? 以下は、Q の実行例です。

よろしくお願いします〜

マルコ

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

c# - 割れたガラスをシミュレートするために長方形の画像を多角形に分割する

私は、2D の四角形を取り、それを小さな 2D ポリゴンに分割したい C# コードに取り組んでいます。長方形がガラスでできていて、ハンマーでランダムな場所を叩いたような効果が欲しいです。これに役立つ良いアルゴリズムを誰かが知っているかどうか疑問に思っていました。この効果をシミュレートするためにランダム ポイントを使用して FortuneVoronoi コードを試しましたが、完成した VoronoiGraph を交差しないポリゴンのセットに適切な CPU 時間で変換するのに苦労しています。