タグ付けされた質問 「geometry」


2
フィギュアの回転を効率的に計算する方法は?
バイトの行列(ビットマップのような行列)で表されるFigureがあります。例の図はに示されていPicture 1ます。 目標は、特定の図の最適な回転角度を見つけることです。Figureが最適な角度だけ回転すると、X軸とY軸に平行でFigureに内接する長方形の面積が最小になります。 図に内接する長方形は、写真上で薄い灰色で示されています。ではPicture 2、あなたは図の理想的な回転が時計回りに約30度であることがわかります。 今、私はこの角度を見つける方法をアルゴリズムを知っていますが、それは非常に効率が悪いようです。こんなふうになります: 0から45までの角度でループします。 現在の角度について、すべての図形ポイントについて、新しい、回転した、位置を計算します 数字(最小および最大x、y)を含む長方形の境界を見つけ、これまでで最良の一致である場合は登録します 次の角度 これは一種のブルートフォース方式であり、小さな人物に対してはうまく機能し、適度に高速です。ただし、最大1,000万ポイントを含む数値を使用する必要があり、アルゴリズムが遅くなります。 この問題に適したアルゴリズムは何でしょうか?

5
円に最も近い最適なものを見つける
以下は、真ん中に白い点のポイントがあり、すべての赤い円がすでに存在する場合に青い円(明らかにそれを配置した場所にある)に最も近い場所を見つけたい場合の画像例です。 。その場所を見つけるにはどうすればよいですか? 私にとってパフォーマンスは、このアプリケーションにとって大きな関心事ではありません。

2
開始点、距離、角度を使用して新しい座標を見つけます
さて、ポイント座標があります。 var coordinate = { x: 10, y: 20 }; 今、距離と角度もあります。 var distance = 20; var angle = 72; 私が解決しようとしている問題は、開始座標から角度の方向に20ポイントを移動したい場合、新しい座標がどうなるかを見つけることができますか? 私はこれを行う方法を知っていたので、答えはサイン/コサインのようなものを含むことを知っていますが、それ以来式を忘れました。誰でも助けることができますか?

5
2つの曲線の特徴を比較する方法は?
2つの曲線f(x)とg(x)を比較する必要があります。それらは同じxの範囲にあります(たとえば、-30から30)。f(x)には、鋭いピークまたは滑らかなピークと谷がある場合があります。g(x)は、同じピークと谷を持つ場合があります。もしそうなら、私はこれらの機能が目視検査なしでどれくらいうまく一致するかについての測定が欲しいです。この問題を次の方法で解決しようとしました。 各データポイントを関数の総面積で除算して、両方の関数を正規化します。正規化された関数の面積は1.0です 各xで、f(x)とg(x)から最小値を取得します。これにより、基本的にf(x)とg(x)の重複領域である新しい関数が提供されます。 ステップ2の結果の関数を統合すると、1.0から合計重複領域が得られます しかし、これは山と谷が一致するかどうかを教えてくれません。これができるかどうかはわかりませんが、誰かが方法を知っているなら、あなたの助けに感謝します。 ==編集==説明のために、画像を含めました。 2つの曲線(黒と青)の違いは同じではないかもしれませんが、補完的な形状になります。 背景:関数は、化合物の原子軌道の投影状態密度(PDOS)です。s、p、d軌道の状態があります。材料にsp、pd、またはddハイブリダイゼーション(軌道混合)があるかどうかを判断したい。私が持っている唯一のデータはPDOSです。s軌道(関数f(x))のPDOSが、p軌道(関数g(x))のPDOSと同じエネルギー(x値)のピークと谷を持っているとすると、その材料にはsp混合があります。
11 geometry 

1
グラフィックプログラマーは、イメージを変更しない頂点のレンダリングをどのように処理しますか?
したがって、タイトルは少し厄介です。背景を説明してから、質問をします。 背景:私はWeb GISアプリケーション開発者として働いていますが、暇なときに地図のレンダリングを試したり、データ交換フォーマットを改善したりしています。私は2D空間でのみ作業します。 私が遭遇した興味深い問題の1つは、小さなスケールでポリゴンをレンダリングしている(ズームアウトした)ときに、頂点の多くが冗長になることです。極端なケースは、1つのピクセルのみを占める500,000の頂点を持つポリゴンがある場合です。このデータをブラウザーに送信する場合は、これらの頂点の〜499,999を省略しても意味があります。これを実現する1つの方法は、サーバーで画像をレンダリングし、それをPNGとして送信することです。ただし、インタラクティブにできるように、データをブラウザに送信してSVG(またはキャンバス、またはwebgl)でレンダリングできるようにする場合もあります。 問題:最新の地理データセットを使用すると、SVGのレンダリング機能を非常に簡単にオーバーロードできることがわかります。これらの制限に対処するために、特定の縮尺とマップ範囲(および必要に応じて、既知のマップピクセルの幅と高さ)のデータセットを視覚的にロスレスで削減する方法を理解しようとしています。 Douglas-Peuckerアルゴリズムを使用しただけでデータサイズが大幅に削減され、ポリゴンを1ピクセル以内に収めることができたと思います。残念ながら、Douglas-Peuckerはトポロジを保持しないため、ポリゴン間の境界線のレンダリング方法が変更されました。他のアルゴリズムを簡単に試して目的に適応させることはできませんでしたが、CS /アルゴリズムの背景があまりなく、見た場合に認識できない可能性があります。

3
ポリゴンに同じサイズのエリアを生成する
n与えられたポリゴンで同じサイズのエリアを見つける疑似コードロジックを探しています。一致した領域の間または領域の外側にスペースがあってはなりません。エリアの最初の有効な一致が返されます。 [2,2, 3,1, 5,1, 5,4, 4,5, 2,3]入力として次のポリゴンを想定: ...そして3パラメータとして有効な出力は次のようになります[ [2,2, 3,2, 3,3, 4,3, 4,5, 2,3], [2,2, 3,1, 5,1, 4,2, 4,3, 3,3, 3,2], [4,5, 4,2, 5,1, 5,4] ]: パラメータ付きの別の有効な出力3は[ [3,4, 3,3, 4,3, 4,2, 3,2, 3,1, 2,2, 2,3], [4,3, 4,2, 3,2, 3,1, 5,1, 5,3], [3,4, 3,3, 5,3, 5,4, 4,5] ]次のとおりです。 エリアは同じ中心点を共有する必要がないことに注意してください。1つ以上の領域が、ポリゴン内の他の領域の間にちょうど入る場合があります。 次に、サンプル入出力の別の例を示します。 [1,3, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.