問題タブ [system.numerics]
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.
c# - System.Numerics を使用したベクトル演算
ベクトルを回転させ、結果を常に正の x、y、z 平面に保持する次のコードがあります。System.Numerics タイプの Vector3 と Matrix4x4 を使用するようにコードをリファクタリングしたいと考えています。誰かが翻訳を手伝ってくれませんか。
これまでのところ、これをリファクタリングすることができましたが、matAdjoin にこだわっています
c# - C# System.Numerics.Vector を可変に変更しますか?
System.Numerics.Vector
多くの数学計算を含む C# プロジェクトでの使用を検討しています。このパッケージの主な魅力は、ハードウェア アクセラレーション機能です。ただし、データ構造は不変であると言われていますが、私のシナリオでは、いくつかのベクトルで頻繁に更新されます。Builder
インパッケージのようなものは何もないことがわかったSystem.Collection.Immutable
ので、変更が必要になるたびに新しいベクターを作成するしか方法がありません。これには非常に時間がかかります。
これにどのように対処すればよいですか?または、C# で高速なベクトル計算を行うことができる他のパッケージはありますか?
.net - Vector でチェック演算を行うことはできますか
HWを使用して整数演算を並列化するためにVectorを試してきました。ベクトル演算でオーバーフロー チェックを有効にする方法はありますか?
1 つの例は、int の 2 つの列 (等しい長さの配列) を一緒に追加することです。ここでは、などc=a+b
を意味します。c[0] = a[0] + b[0]
c[1] = a[1] + b[1]
私はこのようなことができると思います:
しかし、これ (分岐) は .Net の自動オーバーフロー チェックよりも遅くなる可能性があり、.NET を使用することによるパフォーマンス上の利点が無効になる可能性がありVector<T>
ます。
また、最も一般的に使用される演算である乗算、減算、整数除算の最適化も行いたいと考えています。
編集:これについてもう少し考えて、これを思いつきました。これは、チェックされていないベクトルの追加よりも2.5倍遅いです。追加のオーバーヘッドが多いようです。
タイミング: (100k 配列のペアを追加する 4k 反復)
- 通常追加: 618ms
- 通常のチェック加算: 1092ms
- ベクトル加算: 208ms
- ベクトルチェック追加: 536ms
c# - カメラを Matrix4x4 回転に追加する方法
グラフィック出力に System.Numerics.Matrix4x4 と SDL2 を使用して立方体を回転させようとしています。マトリックス回転の概念を理解するのに苦労しています。
私は次のようにそれを行うことができます:
次に、キューブ内のポイントで Vector3.Transform() を使用し、それらの間に線を引きます。見える...よし、その場で回転している。しかし、どうすれば視点を得ることができますか?カメラをミックスに入れる方法は?
この方法はどうですか:
そこでベクトルをどのように使用するべきか、または何をすべきかがわかりません。私の立方体は成長し、奇妙に伸びます...マトリックスが立方体に10、45、および90度適用されたときの写真を参照してください。
https://www.dropbox.com/s/hui5jvky7cexciq/10_45_90.png?dl=0
これを適切に行うにはどうすればよいですか?