問題タブ [2d]

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 投票する
6 に答える
3592 参照

algorithm - 現在、2D ポイント マッチングの「最適な」アルゴリズムと考えられているものは何ですか?

(星の) xy 座標を含む 2 つのリストがあります。各星に等級 (明るさ) を付けることもできます。現在、各星にはランダムな位置のジグルがあり、各画像に余分なポイントや欠落しているポイントがいくつかある可能性があります. 私の質問は、「そのようなデータセットに最適な 2D ポイント マッチング アルゴリズムは何ですか?」です。単純な線形 (平行移動、回転、スケール) と非線形 (たとえば、座標の n 次多項式) の両方について推測します。ポイント マッチング分野の専門用語で言えば、ノイズとスプリアス ポイントを含む 2D ポイント マッチング プログラム間の銃撃戦で勝つアルゴリズムを探しています。ラベル付け情報が使用されているか (大きさ)、および/または変換が線形に制限されているかによって、異なる「勝者」が存在する可能性があります。

2D ポイント マッチング アルゴリズムには多くのクラスがあり、各クラスには多くのアルゴリズム (文字通りおそらく合計で数百) があることは承知していますが、もしあれば、どれが「最良」または「最も標準的」であると考えられるかはわかりません。コンピュータビジョンの分野の人々によって。悲しいことに、私が読みたいと思っている論文の記事の多くは、オンライン バージョンがなく、アブストラクトしか読むことができません。実装する特定のアルゴリズムを決定する前に、小麦と籾殻を区別するために数人の専門家から聞いてみるのが良いでしょう.

三角形を使用する動作中のマッチング プログラムがありますが、解決策の変換に明らかな歪みがあるものの、明確な理由がないため、頻繁に (約 5% の確率で) 失敗します。このプログラムは私が書いたものではなく、ほぼ 20 年前に書かれた論文からのものです。最も堅牢に機能する新しい実装を作成したいと考えています。私は、この分野でこれをもっともらしいものにするいくつかの進歩があったと想定しています (期待しています)。

0 投票する
5 に答える
9627 参照

algorithm - パネルにランダムな重なり合わない長方形を配置します

サイズXxYのパネルがあります。このパネルに、ランダムなサイズの最大N個の長方形を配置したいのですが、どの長方形も重ならないようにします。これらの長方形のX、Y位置を知る必要があります。

アルゴリズム、誰か?

編集:N個の長方形はすべて最初からわかっており、任意の順序で選択できます。それは手順を変更しますか?

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

python - Pygame:移動方向によってスプライトが変化する

昨日、pygameの使い方を学び始めました。私は非常に役に立ち、そのすべてのチュートリアルと例などに従ったこの1冊の本を読みました。本当にシンプルな横スクロール/プラットフォームゲームを作ってみたかったのですが、この本は、上下左右の動きに合わせてスプライトを変更する方法や、アニメーション画像を循環する方法を説明せずに、3Dモデリングにかなり速く飛び込みました。

私は今日、スプライトを表示して上下左右に動かせるようにするためにすべてを費やしてきました。ただし、スクリプトが単純なため、静止画像を使用し、変更を拒否します。

スプライトを変更する方法について誰かが私にいくつかの知識を教えてもらえますか?または、そうするチュートリアルに私を送ってください?

すべてのリファレンスとそれを実験している人は常に生成された形状を使用しているので、私はそれらを扱うことができません。

どんな助けでも大歓迎です。

追加:複雑なアニメーションをシーンに配置する方法を理解する前に、左または右への押し上げに関して、「プレーヤー」を動かない画像に変更する方法を知りたいと思います。人々がその何かが本当に複雑であることを知っているなら、多分斜めです。

追加:これは私がこれまでにまとめたものです。http://animania1.ca/ShowFriends/dev/dirmove.rarは、方向/アクションでアクションの列を設定し、小さな列設定コードでループを循環させて、アニメーション?(または、それは効率の重大な誤用でしょうか?)

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

python - Pygame: スプライト アニメーション理論 - フィードバックが必要

誰かからもらったいくつかのコードを微調整した後、文字の画像をその方向と上下左右の入力に関して移動させ、これをまとめました: (コードが乱雑でないことを願っています)

キャラクター移動コード + IMG

スプライト シートは縦方向にのみ実行されるため、基本的に各スプライト セクションは異なるアクションです。アニメーションを作成するために、現在のコードで機能するコードを作成して、セットの「アクション」からサイクルダウンする方法はありますか?

例: 「Run Left」はスプライト 3 です。では、その列を指定した後、アニメーションを作成するために、実行アニメーションのフレーム数 (4 としましょう) をループダウンできますか?

サンプル画像: http://animania1.ca/ShowFriends/dev/example.jpg代替テキスト

0 投票する
5 に答える
4043 参照

java - スムーズなグリッド移動

私はグリッドシステムを使用してJavaボンバーマンのクローンに取り組んでいますが、現在の動きにはあまり満足していません。プレイヤーが移動キーを押すと、キャラクターは動き始めます(0.25の速度で)。プレイヤーはコントロールを失い、キャラクターはタイル全体を動かすまで動き続けます。プレイヤーは、キャラクターが次のタイルの中央に到達したときにのみコントロールを取り戻します。

これはそれをあまりにも「遅れ」させます。方向を変えたいのならできません。

キャラクターのベースをスプライトのサイズよりも小さくすることができるかもしれません。つまり、それが有効な動きであるかどうかを確認するために、コーナーの前で確認する必要があります。何かご意見は?

ありがとう!

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

algorithm - 3D ハイトマップの等高線を計算していますか?

ハイトマップ内の特定の高さで輪郭を表す線のリストを作成する関数または例を探しています。

例えば、

Heights は浮動小数点値の 512x512 配列で、HeightValue は輪郭を描画する高さです。高さには、その特定の高さの複数の行が含まれる場合があります (サドルやアイランド チェーンなど)。

これを生成するアルゴリズムをどこで入手できるか知っている人はいますか?

0 投票する
8 に答える
23829 参照

math - 逆バイリニア補間?

四角形を形成する 4 つの 2d ポイント、p0 = (x0,y0)、p1 = (x1,y1) などがあります。私の場合、クワッドは長方形ではありませんが、少なくとも凸状である必要があります。

双一次補間を使用しています。S と T は [0..1] 内にあり、補間点は次の式で与えられます。

ここに問題があります..クワッドの内側にあることがわかっている2dポイントpがあります。双一次補間を使用するときにそのポイントを与えるs、tを見つけたいです。

双一次補間を逆にする簡単な式はありますか?


解決策をありがとう。Naaff のソリューションの実装を wiki として投稿しました。

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

c# - SlimDX で 2D を描画する

こんにちは、SlimDX でスプライトを正しくレンダリングできません。.NET Drawing DrawImageUnscaled と同じように、少し拡大縮小して描画します。私は変換を使用していません。

初期化:

レンダリング:

編集:間違ったレンダリングを想像する方法がわからない場合は、レンダリングして参照するものを次に示します(その白い色は無視してください。それは単なる透明なPNGです)。最初の画像がどのようにスケーリングされているかに注目して ください

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

graphics - カイロパスのブール演算?

Union、Difference、Intersection などのブール演算を使用して 2 つのパスを結合することにより、カイロでパスを構築する方法はありますか? Cairo を使用してレンダリングを行うベクター グラフィックス アプリケーションに取り組んでおり、ユーザーがこの方法でパスを結合できるようにしたいと考えていますが、Cairo でそれを行う方法が見つかりません。

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

algorithm - チョコレートバーを等分するアルゴリズム

ランダムな考えが頭に浮かびました(もちろん、チョコレートバーを共有していたときです!). この問題を解決するための一般的なアルゴリズムがあるかどうか疑問に思っていました。

問題は次のようになります。

情報

1. 小さな正方形が長方形のマトリックスに配置されたチョコレート バーが
あります。 2. 部屋には n 人がいます。

問題次の制限が与えられた

場合にバーを人々の間で均等に共有できる最適な構成 (pxq) を出力するアルゴリズムを作成してください 。1 つの軸に沿って完全に作成される3. 分割の総数は n を超えることはできません (これは、バー全体を小さな断片に分割しようとして小さな断片を分割しようとするような非効率的な解決策を思いとどまらせるためです) 4. p または q は等しくありません。 yx は、片側に 1 つのバーがあれば問題は簡単に解決できるという回答の 1 つを指摘しました。ただし、これは実際の状況では適切な解決策ではありません。これは、この問題を解決するための意図でした:)n, n-1, n-2...., 2, 1








n = 4 の場合、最適な構成は 4 x 3 です。

この構成は次のように分けることができます:

縦軸に沿って 3 つの休憩で 4 人
横軸に沿って 2 つの休憩で 3 人
真ん中に 1 つの休憩で 2 人

の経験的な解決策は次のとおりです。該当する場合、バーのサブセット。これをよりよく説明するために、次のような 2 x 2 のチョコレート バーがあるとします。(n, p, q) = (1, 1, 1); (2, 2, 1); (3, 3, 2); (4, 4, 3); (5, 5, 12); (6, 6, 10) OR (6, 5, 12)


従来の知恵では、このバーを 4 つの部分に分割するには、2 つのブレーク (中央の垂直軸 - 下と横) を作成する必要があると言われています。ただし、現実の世界 (チョコレート バーの場合) では、最初に半分に分割し、次にそれぞれの半分を別々に分割します。これにより、バー全体で 1 つのブレークと、バーの 2 つの異なるサブセットで 2 つのブレークの合計 3 つのブレークが作成されます。

私はインターネット上のどこにも解決策を見つけることができませんでした - これがプログラミング関連の質問ではない、または解決策が既に存在すると誰かが感じた場合は、遠慮なく質問を閉じてください =)