問題タブ [graphicspath]

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

mfc - ウィンドウの GraphicsPath を取得する方法はありますか?

OnPaint() で GDI+ Graphics クラスを使用してウィンドウをフレーム化しようとしています。DrawPath() 関数には GraphicsPath が必要なため、ウィンドウの GraphicsPath を取得する方法はありますか?

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

android - Path.reset と Path.rewind

path.reset()アンドロイドではとの違いは何path.rewind()ですか?

ドキュメントはそれを言う

パブリックボイドリセット ()

パスから直線と曲線をすべてクリアして、パスを空にします。これは、fill-type 設定を変更しません。

public void rewind ()

パスを巻き戻します: パスから直線と曲線を消去しますが、再利用を高速化するために内部データ構造を保持します。

しかし、それは本当にどういう意味ですか?

いつどちらを使用する必要がありますか?

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

c# - GraphicsPathを使用して長方形に円弧を追加する

ICパッケージの上面図を描画しようとしています。これは次のようになります(Windowsのペイントを使用しても十分に描画できませんでした!)

ここに画像の説明を入力してください

パスオブジェクトを使用していますが、パスオブジェクトの結果が期待したものに近くありません。少なくとも完全な長方形自体はうまく描画されますが、私の例の画像に表示されている上部の円弧を作成するのに問題があります。あなたが私を正しい場所に向けることができればいいでしょう。これが私のコードです:

したがって、ここで行っているのは、左上隅から左下隅、右下隅、最後に右上隅までの行を開始し、右上隅から上部の中央まで、マイナス10ピクセルの行を追加することです。次に、幅20ピクセルの円弧を追加して、左上隅に描画を終了します。

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

vb.net - Angus J Clipper ライブラリを使用して vb.net の GraphicsPath テキストのアウトラインを作成する

DrawString を使用して GDI+ GraphicsPath でテキストを作成し、これをパスとして PDF に出力しています。

現時点では、これはすべて完全に機能しています。

私が問題を抱えているのは、選択したフォントによってアウトラインが互いに重なってしまうときです。私は画像の例を持っていますが、新しいユーザーであるためアップロードできません... (無意味に思えます..?..)

ライブラリと、このブログで探しているものと同じことを達成した人を見つけました

ライブラリから空のソリューションを取得し続けていますが、コード スニペットを vb.net に変換しました。

文字列を含むgraphicsPathを渡し、これまたは同様のライブラリを使用してアウトライン化されたテキストを取得できた人はいますか?

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

c# - Region を GraphicsPath に変換する

Region を使用して、2 つのパス (2 つのポリゴンから作成されたパス) の交点を見つけます。

Region d の交点を取得するにはどうすればよいですか?

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

android - キャンバス上のandroid.graphics.Pathの位置を変更する

私はここ数日ブラウジングしていますが、これを行う方法を見つけることができないようです。Android SDKとその機能を使用しているよりも、経験豊富な方がいらっしゃると思います:)

最上部と左端のコントロールポイントx=300とy=500(下の画像の落書き)でキャンバスにパスを描画するとします。その「長方形」の位置をキャンバスの座標に設定できるようにしたい(例:x=10およびy=10)

ここに画像の説明を入力してください つまり、基本的に、私が興味を持っているのはパスのある長方形です。アイデアは、この領域を「切り取り」、特定の位置に移動することです(ただし、すでにキャンバス上にある下にある描画を含めたくありません)。 )。

私が試したこと:

パスをPathShapeに変換してからShapeDrawableに変換します。Drawableの位置を歪めることはできますが、正確すぎて配置できません。

getWidth()とgetHeight()は、それぞれキャンバスの幅と高さを取得しています。

新しいアイデアによって、またはShapeDrawableのアイデアを修正することによって、これを行う方法を考えるのを手伝ってもらえますか?よろしくお願いします!

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

c# - GraphicsPathは使用後に廃棄する必要があります

CAD図面の立面図に配置するさまざまなタイプのシンボルを作成するユーティリティクラスをいくつか作成しています。GraphicsPathオブジェクトを破棄する必要がある場合は、それを確認したいと思います。

以下のコードでは、getCircle関数内から、myPath"GraphicsPath"オブジェクトをAddStringToPath関数に渡していることを示しています。

myPathグラフィックスオブジェクトを参照として渡しているため、using(){}スコープを使用できません。

このデザインは使用しても大丈夫ですか、それともガベージコレクションを確実にするためにこれを別の方法で実行する必要がありますか?

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

c# - GraphicsPath を使用して地図画像に道路を描画する

Google マップから取得したビットマップ上で関心のある道路を強調表示するためにユーザーが線を引く (無料の描画) ことができるアプリケーション (WinForms C#) があります。

Mouse Down/Move/Up イベントを使用して GraphicsPath オブジェクトにポイントを追加しています。これは、2 つの点だけで表すことができる道路の直線区間に適しています。しかし、長時間ボタンを押したままマウスを回転させると、大量のポイント データが生成されます。

これは非効率であるだけでなく、曲線を描くのが面倒な方法でもあります (特にズーム レベルが低すぎる場合)。

質問:

  • パスが完成したら、精度を落とさずにポイントの数をプログラムで減らすにはどうすればよいでしょうか。
  • 何らかの形の幾何学的構造を使用してポイント情報を取得するより良い方法はありますか?
0 投票する
1 に答える
749 参照

c# - ズームされたGraphicsPathでの作業は本当に遅い

Graphics オブジェクトがリソースを使用する方法を知っていますか?

パネルに緯度経度座標を持つ数千の GraphicsPath オブジェクトを描画しています。最初に、これらの Graphicspaths をズームする必要があります (変換 - 実際には 4 つのマトリックス変換)。その後、ユーザーは、グラフィック パスを再描画するために呼び出される各アクションで、マップを移動したり、ズームしたりできます。

問題は、ズーム レベルが 2000 ~ 10000 程度のときは全体が応答することですが、数十万 (ストリート レベルのズーム) になると、ペイントに時間がかかりすぎて、アプリケーション全体が応答しなくなることです。空きメモリを確認してください。まだ十分あります。CPU使用率はまだOKです。

同じ 4 つのマトリックス変換を使用して同じ数千のグラフィックス パスを描画すると、ズーム ファクターを大きくすると、それぞれが非常に遅くなるのはなぜですか? Graphics Path 座標を多数扱う場合、System.Graphics 自体に問題がありますか? 皆さんは同じ問題に直面したことがありますか?

  • コードが含まれていないため、申し訳ありませんが、ここに「遅い」コードのチャンクがあります: 基本的に _paint メソッドの反復部分です。30,000 以上のグラフィックス パスを実行します。ほとんどは esri shp ファイルから抽出されたポリラインです。x の座標は + で y は - であり、上下逆になっているため、必要なマトリックス変換をパネルにペイントする必要があります。問題は低い値の変数 zI にあり、高い値の変数 zI よりもはるかに高速です。高値の zi は、グラフィックス パスの大部分がペイントされた領域の外にあることを意味します。isVisible をチェックするか、長方形の境界を交差させることで、zi の量を減らそうとします。しかし、それでも十分な速度ではありません。何か案は?

    /li>

ヘルプ .... :)

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

vb.net - vb.net でグラフィック パスの配列を作成する

なぜこれに問題があるのか​​ わかりませんが、毎回「オブジェクトのインスタンスに設定されていません」という例外が発生し続けます。

これは理にかなっていますか?

これをメインフォームで宣言しました

サブでこれを行います

しかし、何らかの理由で、2 行目にオブジェクト参照エラーが発生します。何か助けはありますか?

宣言の後、次のようにグラフィックパスに行を追加したいと思います

リストを使用する提案に従って:

メインクラスで宣言

サブで使う

グラフィックスパスの新しいインスタンスを作成しようとすると、まだエラーが発生します

このエラーが表示される理由はありませんか? ここに画像の説明を入力