問題タブ [pathgeometry]
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.
wpf - 閉じていないPathGeometryを下部に埋める
次のように、線PathGeometry
で構成されていると仮定します(たとえば、長方形==パネル):
次のように、パネルの下部に線を塗りつぶしたいと思います
:
私が見る迅速であまり良くない解決策は、追加の曲線を作成することです下部に2つの追加ポイントを追加し、それを塗りつぶしに使用します。Grid
タスクを解決するためのより良い方法はありますか?このようなもの(擬似コード):
directx - ID2D1PathGeometry からのパス セグメントの取得
私は現在、楽しみのために SlimDX を使用して C# で小さなゲーム エンジンを作成しようとしています。
世界を破壊可能にしたいので、マップを変更できる必要があります。私のマップは現在ベクター ベースで、 ID2D1PathGeometry (SlimDX の PathGeometry) オブジェクトで表されます。このオブジェクトは、ID2D1Geometry (SlimDX の Geometry) の CombineWithGeometry メソッドを使用して変更されます。
妥当な衝突検出を行うには、ID2D1PathGeometry オブジェクトの正確な形状に関する知識が必要です。たとえば、ボールが壁に跳ね返る角度を計算する場合などです。
では、ID2D1PathGeometry オブジェクトのすべてまたは特定の (場所ごとの) セグメント/ライン/ポイントにアクセスすることは可能ですか? または、すべての線と形状を別のデータ構造に追加で保存するなど、私の目標を達成するための他のより良い方法はありますか?
マップ サイズの制約としてメモリを使用したくないため、ビットマップ ベースのマップはここでは使用しないことに注意してください。
敬具、エミ
wpf - WPFパスを、その原点がコンテナーの下部、中央に配置されるように配置します
Path
原点(0、0)がコンテナの中央の下部に配置されるように、aを中央に配置しようとしています。コンテナが。であると仮定しGrid
ます。
例:
注:矢印の尾は原点(0、0)にあります。尾は水平方向の中央に配置されていますが、矢印全体が左に傾いています。これは、矢印がどちらの方向を指しているかに関係なく、私が達成したいことです。
これは、x座標とy座標が正、負、または両方の混合であるパスに対して機能する必要があります。
最小のマークアップでXAMLを介してこれをどのように行うことができますか?
.net - 文字列から数値を抽出する
PathSegmentCollectionを作成するには、文字列を解析する必要があります。文字列は、コマや(任意の)空白(改行、タブなど)で区切られた数字で構成され、科学的記数法を使用して数字を書くこともできます。
これは例です:"9.63074,9.63074 -5.55708e-006 0 ,0 1477.78"
そして、ポイントは次のとおりです。P1(9.63074、9.63074)、P2(-0,555708、0)、P3(0、1477.78)
数値を抽出するには、正規表現を使用します。
動作しますが、約10万(またはそれ以上)の文字列を解析する必要があり、この方法では遅すぎます。より効率的な解決策を見つけたいのですが、ほとんどの場合、数値は科学的記数法で書かれていません。それがより良い方法だと思うなら、C /C++を使用するC++/CLIで書かれたアセンブリを使用しても問題ありません。マネージコードではない、またはC#の安全でないコード。
c# - このWPFパスをC#で描画する方法
このWPFコードをC#に変換するのに苦労しています。私はWPFに比較的慣れていないので、誰かがここで私を助けてくれることを本当に望んでいます:)
PathGeometryFiguresにたどり着くまではうまくやっているようでした...誰かがこのWPFコードのC#コードスニペットを私に提供してくれるなら、それは大いにありがたいです!
math - 回転している3Dオブジェクトを画面上で動かし、停止したときに正しい方向を向くようにします
私が達成しようとしていることの最良の例は、このyoutubeビデオにあります
http://www.youtube.com/watch?v=53Tk-oGL2Uo
「アタリ」という単語を構成する文字は、画面の端から飛び込んで回転し、最後に並んで単語を作ります。
オブジェクトを画面上で移動させる方法は知っていますが、オブジェクトが終了位置に到達したときに正しい方向を向くように回転を計算するにはどうすればよいですか?
wpf - PathGeometry.FillContainsWithDetail() よりもポリゴンのオーバーラップ/交差を検出する効率的な方法はありますか?
CPU時間の25%をむさぼり食う方法があります。このメソッドを 1 秒あたり約 27,000 回呼び出します。(ええ、頻繁に更新されているため、多くの呼び出しがあります)。2 つのポリゴンが重なっているかどうかを検出するより高速な方法を誰かが知っているかどうか疑問に思っています。基本的に、画面上で動いているオブジェクトと画面上で静止しているオブジェクトをチェックする必要があります。私は PathGeometry を使用しており、以下の 2 つの呼び出しは、プログラムが使用する CPU 時間の 25% を使用しています。私が渡している PointCollection オブジェクトには、ポリゴンの 4 つのコーナーを表す 4 つのポイントが含まれています。それらは長方形の領域を作成しない場合がありますが、すべての点が接続されています。形は台形になると思います。
これらのメソッドは短く、実装が非常に簡単でしたが、以下のコードよりも速く実行できる場合は、より複雑なソリューションを選択したいと思うかもしれません. 何か案は?
wpf - Setter.TargetNameは、BasedOn設定の要素に対しては機能しません
さまざまなボタンにさまざまなグラフィックを描画するPathGeometryインスタンスがたくさんあります。そこで、パスを表示するためのボタンタイプを作成しました。これにより、ボタンの状態に応じてPath.Strokeが更新されます。したがって、無効にすると灰色になり、マウスを上に置くと色が異なります。標準的なもの...
しかし、明らかに、ボタンインスタンスごとに異なるPath.Dataが必要です。そこで、Path.Dataを次のように設定するためのBasedOnスタイルを作成します...
...しかし、これはTargetName="Path"が見つからないというエラーで失敗します。これを修正する方法はありますか?または、使用するジオメトリでパラメータ化されたパスを持つボタンを作成するためのより良い方法はありますか?
wpf - PathGeometryがバインドされているときにStrokeStartLineCapが設定されていない
XAMLは、期待される結果、つまり端が丸い線を生成します。
ただし、同じPathGeometryをバインドするデータは、フラットエンドを生成します。これがなぜなのかわかりませんが、誰か説明できますか?
簡単な例を次に示します。
XAML:
C#:
c# - new PathGeometry() は TypeInitializationException をスローしますか?
バックグラウンド スレッドで幾何学的解析を行っているプログラムがあります。
通常、これは非常にうまく機能しますが、驚くべきことに、開発用コンピューターで PathGeometry を作成しようとすると例外が発生します。
簡単なコードでは次のようになります。
System.TypeInitializationException {"Der Typeninitialisierer für \"System.Windows.Media.PathGeometry\" hat eine Ausnahme verursacht."}
スタック トレースは次のとおりです。
この例外には InnerException が含まれます System.ComponentModel.Win32Exception {"Ungültiges Fensterhandle"} InnerException のスタック トレースは次のとおりです。
奇妙なことに、実行可能ファイルは他のコンピューターでも動作します。
何が問題ですか?PathGeometry コンストラクターがウィンドウ ハンドルにアクセスしようとするのはなぜですか? これを解決するにはどうすればよいですか?
私は .NET Framework 4.0 を使用しており、VS2010 と VS2012 の両方でコードがスローされます。