問題タブ [helix-3d-toolkit]
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 - WPF は、バインディングを使用して単一の Viewport3D でコレクションの要素をレンダリングする方法を提供しますか?
注: XAML スニペットではカメラとライトの定義を省略して、主に実際の問題に焦点を当てています。
WPFの問題
ObservableCollection
をWPF の 3D クラス ( など) の 1 つにバインドしたいと思いModelVisual3D
ます。次のような方法で:
ただし、いくつかの調査とテストの後、WPF で同様のものは見つかりませんでした。
Helix Toolkit によるソリューション (一種)
Helix ツールキットは、WPF 用の 3D コンポーネントのセットを提供するライブラリです。また、例の 1 つ ( DataTemplate ) が、必要なものを正確に提供すると主張していることを発見しました。
それはどのように機能しますか?
以下は、例の xaml 部分の同様の実装です。
この例は、2 つのクラスのおかげで機能します。
ItemsVisual3D
:依存関係プロパティModelVisual3D
を含むように拡張されたクラス。また、コレクションの単一要素のレンダリングを制御するIEnumerable ItemsSource
も含まれています。DataTemplate3D
DataTemplate3D
:をコンテンツ プロパティとしてDispatcherObject
使用する定義から派生したカスタム テンプレート。Visual3D
問題
ただし、大きな問題が見つかりました。Center
立方体の s は正しく設定されていましたが、他の 2 つのプロパティはまったく設定されておらず、大きなオレンジ色の赤い立方体ではなく、(既定では) 小さな青い立方体になってしまいましたSideLength
。Fill
少し調べてみたところ、DataTemplate3D.csでは境界付きプロパティのみが設定されていることがわかりました。テンプレートで定義されたプロパティを設定する関数にコメント付きのコード ブロックがあったため、問題はすぐに解決しました。
次に、アプリケーションの実行中に、最もあいまいな予期しない動作の 1 つに遭遇しました。境界を除いて、すべてのプロパティが設定されましたCenter
(つまり、原点を中心とする大きなオレンジ色の赤い立方体の束が得られました)。さらに奇妙なことに、関数が返される直前にブレークポイントを設定してプロパティを確認するとCenter
、出力が間違っていても、 を含め、すべて正しく設定されていました!
結論
WPF がコレクションを特定の 3D クラスにバインドする方法を実際に提供していることを見逃していましたか? または、helix ツールキット側で解決策を見つけた人はいますか?
c# - さまざまな直径の 3D チューブを作成する方法
WPF で Helix ツールキットを使用しており、さまざまな直径のパイプ/チューブを含む 3D イメージを作成しようとしています。基本的に、私は非直線を取り、軸を中心に回転させてチューブを作成しようとしています。実際の回転ではなく、結果のチューブのみを気にします(回転を視覚化しようとしているわけではありません)。
Helix ツールキット、または他の 3D サーフェス生成ツールでこれを行う方法はありますか? 私が思いついた最善の解決策は、直径の異なる一連のパイプを作成することですが、各パイプ間の移行をスムーズにする方法がわかりません。パイプには多くのポイントがあるため、これも理想的なソリューションとは言えません。そのため、最終的に約 150 個の非常に小さなパイプ セグメントが作成されます。Helix のドキュメントはやや不足していますが、ソース コードを調べても明らかな解決策は見つかりませんでした。
c# - 線から 3D 平面を作成する方法
私は WPF で Helix Toolkit を使用しています。たくさんの線を取り、それらを面に変えたいと思っています。明確にするために、私は 3 次元曲線のグループを持っており、これらすべての線から生じる湾曲した刃を取得したいと考えています。(線はブレードを通る線を表します)。
ある程度、この質問が求めていたのとは逆のことをしたいと思います(線をワイヤーフレームとして使用してモデルに変えます)。
これまでのところ、私はこの XAML を持っています:
コード ビハインドの関連部分 (各リストに多くのオブジェクトを追加するだけで完全に構成されているため、の内容は含めません) GetSplines()
:GetSpars()
Point3D
結果は次のとおりです。
しかし、私はこのようなものが欲しい:
編集:私は Helix Toolkit には慣れていないので、これを実現できる別のライブラリを誰かが知っていれば、それを聞いて感謝します!
c# - Codebehind WPF を使用してらせんビューポートで FileModelVisual3D のサイズを変更する方法
私は、helixtoolkit と Graphics 3D の世界ではまったくの初心者です。
私が作るもの:
クリスマスツリーをさまざまな種類の装飾で飾ることができるプログラムをコーディングする宿題があります。
装飾の1つのタイプはろうそくです。問題。ろうそくは木に対して小さすぎます。
私の質問:
コード ビハインドを使用して、view_tree 内で FileModelVisual3D のサイズを変更するにはどうすればよいですか?
XAML コード
誰でも助けてくれることを願っています!他の人にとっては簡単なことは知っていますが、3D コーディングの経験はありません。
ありがとう
wpf - HelixToolKitを使用して.objオブジェクトをXAMLに変換しますか?
私は WPF(3D) と HelixToolKit を初めて使用します。.obj ファイルを XAML コードに変換したいです。.obj を XAML に変換するためにライブラリ全体を検索しましたが、何も見つかりませんでした。どのクラス ファイルからこの変換コードを取得できますか?