問題タブ [path-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 投票する
1 に答える
507 参照

java - Path2D でのマウス ポインターの検出

Path2D直線で構成される閉じていない形状を表すを構築しました。

ここに画像の説明を入力

マウスがクリックされ、マウスポインターがパスの近く (数ピクセル以内) にあることを検出できるようにしたいと考えています。このcontains方法を使用しても、アルゴリズムは閉じていない形状を暗黙的に閉じたものとして処理するため (つまり、始点と終点の間に直線を描くことによって) 機能しません。

これを達成するための別のメカニズムを知っている人はいますか?

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

java - path2d を使用してポリゴンを描画し、ポイントがその領域内にあるかどうかを確認するにはどうすればよいですか?

私は、path2d で複数の頂点を使用して任意の種類のポリゴン形状を描画しようとしています。後で、java.awt.geom.Area を使用して確定点がその領域内にあるかどうかを確認したいと考えています。

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

java - JPanel の Java Path2D.Double は「尾」で描画されます

JPanel で Path2D を描画すると、奇妙な動作が発生します。


このスクリーンショットでわかるように、一部の形状は尻尾のようなものになります。

ここに画像の説明を入力

タイプを Line2D.Double に変更すると、期待どおりになります。

ここに画像の説明を入力

パス/ラインを描画するコードは次のとおりです。


スクリーンショット 1 の「尻尾」がどこから来ているか分かりますか? SDK バージョン 6 を使用しています。

ご助力ありがとうございます




編集:コードスニペットをに変更するとき

テールのほとんど (おそらく 75%) が消えます。なぜこれが起こるのか分かりますか?

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

ios - グラフィック コンテキストを使用せずに 2D ポイントからジオメトリック パスを作成する。iOSで可能?

コード内のいくつかの重い数学機能をテストする方法が必要であり、そのようなコードが適切に機能していることを確認する必要があるところまで来ました。ポイントの配列に基づいてパスを作成し、このパスをグラフィックス コンテキストなしでテストに使用できるようにしたいと考えています。

例として、Java にはPath2Dクラスなどのさまざまなクラスがあり、何らかの種類のグラフィックス コンテキストで情報を表示する必要がない限り、あらゆる種類のコンテキストまたはビューから完全に独立しています。

Apple は、任意の幾何学的形状を作成、操作、および変更できる方法を提供していないようですが、私はここに来て確かめたかったのです。

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

java - Java クラスのキャスト例外 java.awt.geom.Path2D.Double

AffineTransform を実装しようとすると、このクラス キャスト例外が発生します。

AffineTransform への呼び出し:

これは、カスタム シェイプ クラス (YingYang) にあります。

呼び出しを行うたびに、これを描画パネルから、またはそれ自体のクラス内で YingYang にキャストしようとすると、クラス キャスト例外が発生します (戻り値の型を YingYang.

私はこのように電話をかけます:

これはエラーです:

java.lang.ClassCastException: java.awt.geom.Path2D$Double は Animation.YingYang にキャストできません

YingYang がシェイプ 1 を実装してからのアイデアは、これをキャストする必要はまったくないはずだと思うでしょう。重要な概念がありませんか?

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

java - 敵に同じ速度でパスをたどらせる

Javaでゲームのプログラミングを始めました。初めて経験を積むための基本的な2Dゲームである敵とプレイヤーがいます。

今度は、「レベル エディター」に描画できるパスを敵にたどらせたいと思いました。JPanel、mouseMoveListener があり、クリックすると、Path2D が mouseMove ポイントを Path2D.Double オブジェクトに保存し始めます。

その後、次の方法を実装して、敵がこのパスをたどるようにしました。

今何が起こっているかは明らかだと思います。敵は追いかけていますが、速度はマウスを動かしたのと同じです。したがって、マウスに移動して高速にすると、敵は..あるポイントから別のポイントに「ジャンプ」します。遅くするために、そのポイントを「こっそり」。(そして私はロボットではないので、同じ速度でマウスを動かすことはできません ^^)

ロボットの話: はい、awt.Robot にマウスを動かさせることができました。しかし、背後に目に見える数学がない複雑なパスを描画する必要があるため、これも実際には不可能です。

だから、このエネミーが同じ速度でこの道を進むようにしたい。私の問題: 「修正」を実装する場所がわかりません。私には2つのアイデアがあります:

  • パスの作成に取り組むことができるかもしれません: Path2D にポイントを追加するだけでなく、移動したポイント間のポイントを計算したり、互いに近くにあるポイントを削除したりすることができます。しかし: 第一に、これを計算する方法がわかりません (これを達成するための数学ロジックはありますか?) そして第二に、これを行うと、おそらくゲーム内の敵の速度を変更することができなくなります。悪いだろう

  • 私が持っている2番目のアイデアは、(ジャンプするポイントよりも)間のポイントを計算することです。これは、実際の速度に対して、フレームごとに発生するはずです。しかし、ここでは数学の経験が十分ではありません。

それで、その方法は可能ですか?もしそうなら、誰かがこれを計算する方法を知っていますか?そうでない場合、これを達成するために他にどのような可能性がありますか?

ありがとう、下手な英語でごめんなさい!

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

java - Path2D の描画をアニメーション化する

私は、MS ペイントの鉛筆ツールを使用するように、ユーザーが画面上に描画できるようにし、ユーザーが描画を作成するプロセスを再生できるようにするプログラムを作成しています。

Path2D を使用してこれを行った方法で、moveTo メソッドと lineTo メソッドを使用して、パスを使用して線を描画します。

Path2D オブジェクトの再描画をアニメーション化する方法がわかりません。私の現在の戦略は、新しい Path2D を作成し、PathIterator を使用して、古いパスから新しいパスに線分を繰り返し追加することです。

これは私が今のところ考えていることです:

主な問題は、線分のサイズがわからないため、coords 配列のサイズを決める方法がわからないことです。また、セグメントを新しいパスに追加する方法もよくわかりません。Path2D の append メソッドを使用できるように見えますが、パス全体をそれ自体に追加しているように見えます。

Path2D が Shape であることは認識していますが、これを行う別の方法が見つからないようです。

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

java - Java Graphics2D Path2D 単純化または別のクラスからの呼び出し

正確なPath2D座標が多く、paintComponentが乱雑になっているため、リストを使用してコードをクリーンアップするか、別のクラスから呼び出すことができるかどうか疑問に思っています。

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

java - Javaでカスタム長方形を描く方法

私が求めているものにはほとんど重複があります:ほとんど重複しています

でも、上部の角を丸くしたい。

ドキュメントを参照してコードを変更しようとしましたが、Java でこの図面を作成するのは初めてで、うまくいきませんでした。:/

だから私の質問は、これをどのように変更するかです:

丸みを帯びた角を上の角にします。

これに役立つすべての回答に本当に感謝しています。

ありがとう

0 投票する
0 に答える
61 参照

java - AffineTransform と setClip() の問題

解決済み:

タイル張りの 2D ゲームを作成中ですが、問題が発生しています。私のゲームでは、使用するペイントの種類ごとに領域としてキャッシュされる任意の形状のブラシ タイプを使用して、ユーザーがそこにマップを作成できます。特定のペイントのキャッシュ領域を取得したら、マップ全体で 100 x 100 の各タイルの交点から領域をタイル化された Path2D 形状に分割します。問題は、表示領域内のタイルを AffineTransform し、それをペイント用のクリップに設定すると、形状が元の形状から切り取られているように見えることです。

結果は、動きがある場合、実際の形状のタイル化されたカットオフ バージョンを生成します...

出力:

初期ビュー 初期ビュー 右および下に移動した後のビュー 上下左右に移動後のビュー

解決

行を編集