問題タブ [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.

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

c# - System.Numerics を使用したベクトル演算

ベクトルを回転させ、結果を常に正の x、y、z 平面に保持する次のコードがあります。System.Numerics タイプの Vector3 と Matrix4x4 を使用するようにコードをリファクタリングしたいと考えています。誰かが翻訳を手伝ってくれませんか。

これまでのところ、これをリファクタリングすることができましたが、matAdjoin にこだわっています

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

c# - C# System.Numerics.Vector を可変に変更しますか?

System.Numerics.Vector多くの数学計算を含む C# プロジェクトでの使用を検討しています。このパッケージの主な魅力は、ハードウェア アクセラレーション機能です。ただし、データ構造は不変であると言われていますが、私のシナリオでは、いくつかのベクトルで頻繁に更新されます。Builderインパッケージのようなものは何もないことがわかったSystem.Collection.Immutableので、変更が必要になるたびに新しいベクターを作成するしか方法がありません。これには非常に時間がかかります。

これにどのように対処すればよいですか?または、C# で高速なベクトル計算を行うことができる他のパッケージはありますか?

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

.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
0 投票する
0 に答える
166 参照

c# - カメラを Matrix4x4 回転に追加する方法

グラフィック出力に System.Numerics.Matrix4x4 と SDL2 を使用して立方体を回転させようとしています。マトリックス回転の概念を理解するのに苦労しています。

私は次のようにそれを行うことができます:

次に、キューブ内のポイントで Vector3.Transform() を使用し、それらの間に線を引きます。見える...よし、その場で回転している。しかし、どうすれば視点を得ることができますか?カメラをミックスに入れる方法は?

この方法はどうですか:

そこでベクトルをどのように使用するべきか、または何をすべきかがわかりません。私の立方体は成長し、奇妙に伸びます...マトリックスが立方体に10、45、および90度適用されたときの写真を参照してください。

https://www.dropbox.com/s/hui5jvky7cexciq/10_45_90.png?dl=0

これを適切に行うにはどうすればよいですか?