問題タブ [vectormath]

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 投票する
3 に答える
380 参照

scaling - 非軸整列スケーリング

これを行うための良い方法を見つけることは、しばらくの間私を困惑させました:私がその中にポイントのセットを持っている選択ボックスを持っていると仮定してください。コーナーをドラッグすることで、ボックス内のポイント(間の距離)をスケーリングできます。軸合わせボックスの場合、これは簡単です。コーナーをアンカーポイントとして(各ポイントからこのコーナーを引き、スケーリングしてから、もう一度ポイントに追加します)、各ポイントxとyにボックスが大きくなった係数を掛けます。

しかし、ここで、x軸とy軸に位置合わせされていないボックスを取り上げます。このボックスの角をドラッグするときに、このボックス内のポイントをどのようにスケーリングしますか?

0 投票する
3 に答える
838 参照

math - ジンバルベースの塗装機の数学プログラミングヘルプ

私は、さまざまな種類のコンピューター制御マシンの構築に携わっているアーティストです。私はジンバルベースのXY塗装機のプロトタイピングを開始し、必要な計算が私の手の届かないところにあることに気づきました。私はまともなプログラマーですが、数学は得意ではありません。3D数学。

私が何をする必要があるのか​​を理解するには、リグを確認すると役立つ場合があります。

初期のプロトタイプ:

http://roypardi.com/gimble/IMG_2803.JPG

http://roypardi.com/gimble/IMG_2805.JPG

http://roypardi.com/gimble/IMG_2806.JPG

http://roypardi.com/gimble/gimbleSmall.MOV (小さなビデオ)

http://roypardi.com/gimble/gimbleLarge.mov (より大きなビデオ)

2つの内輪はX/Y軸を表し、ステッピングモーターによって制御されます。ラスター画像とベクターデータ(gcode)の両方を使用できるようにしたい。したがって、紙の2D空間内のポイントに対処し、データからそのポイントに到達するために必要な方向(つまり、各モーターをどれだけステップするか)をジンバルに把握させる必要があります。

2D> 3D投影、オイラー角などを探していましたが、深みがありません。ポインタ、正しい方向へのプッシュ、またはコードスニペットは大歓迎です。私はほとんどのプログラミング言語を理解できます。

0 投票する
4 に答える
982 参照

math - 直感的な3D数学リソース

私は最近、3Dスキルを磨くために、いくつかのよく提示され説明されているVectorおよびQuaternionリソースを見つけようとしており、いくつかの問題を抱えています。

私が見つけたリソースのほとんどは、特定の操作を実行することが有用であるという高レベルの理由をスキップする傾向があり、専門用語と証明に直接飛び込んで、私の注意をかなり早く失う傾向があります。

私は、よりよく説明されていると、さまざまな数学のトピックについて本当に良い説明があることがわかりましたが、ベクトルやクォータニオンについては何もありません。

高レベルのVectorおよび/またはQuaternionチュートリアルを知っている人はいますか?

0 投票する
4 に答える
2346 参照

c++ - C++ を使用した OS X の SIMD Sony Vector Math ライブラリ

私は現在、割り当て用の非常に単純なゲーム エンジンを作成しており、コードをより良くするために、ベクトル数学ライブラリを使用することにしました。私の講師の 1 人が、Bullet Physics エンジンで使用されている Sony Vector Math ライブラリを見せてくれました。Linux では問題なく動作していますが、OS X (intel、Snow Leopard) で動作するように移植するのに問題があります。プロジェクトにファイルを正しく含めましたが、ライブラリの C++ バージョンがコンパイルされないようです。ライブラリの C バージョンを動作させることはできますが、C++ バージョンに比べてかなり厄介な API があり、このライブラリを使用する全体的な理由は、そもそもコードをきれいにすることでした。

http://glosx.blogspot.com/2008/07/sony-vector-math-library.html

私が偶然見つけたこのブログ投稿は、コンパイラに何か問題があることを示唆しているようです? かなり短いので、そこから多くの情報を得ることができませんでした。

C++ バージョンを使用しようとすると、次のエラーが表示されます (各エラーの拡大ビュー)。

2 番目のエラー:

最後に、main.cpp ファイルの最後に 2 つのエラーがあります。

私は自分の心をグーグルで検索しましたが、正しい方向に向けるための答えや何かを見つけることができないので、どんな助けも大いに受け取られます.

ありがとう、

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

math - 円から接線へのマッピング

AとBが円上にあるように、中心Oを含む線ABを持つ円が与えられたと仮定します(OA = OB =半径)。接線tが点Aに描かれ、円の特定の点(a、b、c、d ...)から接線上の点(at、bt、ct、dt 、.)へのマッピングを計算する必要があります。 ..)距離Aa(円に沿った距離)が距離Aat(接線に沿った距離)と同じになるように(そして距離Ab、Ac、Adについても同じ)。ただし、ここでは、特定の制約を考慮する必要があります。AからBまでの円の片側からの円の点((a、b、c、d)の中)は、接線の片側に配置する必要があります(より近い)、そして円の形AからBの反対側からのものは反対側に配置されるべきです。基本的に、円はBで分割してから、接線にマッピングする必要があります。

A、B、O、a、b、c、dの座標に関する情報があることに注意してください。私は(at、bt、ct、dt)を計算することになっていました。この問題を解決するために、2つのアプローチがありますが、それらが常に正しく機能することを確認する方法がわかりません。

1)点Aでの接線の方程式を計算します。次に、各点(a、b、c、d)について、Aからの距離(円に沿って)を計算し、これらの距離を使用して(at、bt、ct)を計算します。 、dt ...)接線に沿って。ここで私が知らないのは、Aから(a、b、c、d)までの距離を計算する方法です。問題は「適切な側」の決定です。つまり、ポイントを接線の一方の側にマッピングするか、もう一方の側にマップするかをどのように決定する必要がありますか。これを決定する方法は何でしょうか。

2)点Aでの接線の方程式を計算します。次に、各点(a、b、c、d)について、Aからの距離(円に沿って)を計算し、これらの距離を使用して(at、bt、ct)を計算します。 、dt ...)接線に沿って。特定の点の「適切な側」を決定するために、その点の接線への投影を使用する場合があります。しかし、これでも、「どちら側がどちらか」をどうやって知るのでしょうか。おそらく、これを行うためのはるかに簡単な方法があります。

これを行う方法についての提案は大歓迎です。正確さが足りない場合は、詳しく説明します。

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

instruction-set - AMD Open64:最適化された数学関数

Open64には、 Intel Short Vector MathLibraryOperationsと同等のものがありますか。

ありがとうございました。

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

lua - 3 d の円の最も近い点。何が欠けていますか?

これを明確に説明できることを願っています。3D で円の最も近い点を計算しようとしています。次の解決策を見つけました: http://www.geometrictools.com/Documentation/DistancePoint3Circle3.pdf

私のコードは以下です(Luaで書かれています)。主な問題は、射影 Q が正しくないように見えるか、正しく計算する方法がわからないことです。論文で読むことができるように、Q は円の平面上の点の投影である必要があります。

たとえば、円の法線は {0,1,0} で、その中心は {3, 3, 3} にあります。円に最も近い距離を計算しようとしているポイント (p) は、{6, 3, 2} にあります。そして、私の計算では、円の平面への射影 Q は {6, 0, 2} です。

アルゴリズムを機能させるには、平面の位置、たとえば円の中心成分をその法線の方向にオフセットする必要があるようです。この場合、y 方向なので値 3 です。

簡単なので、通常の {0,1,0} でこれをハックできますが、円が任意の位置に面すると、これを計算する方法がわかりません。

何が欠けていて、どこが間違っているのでしょうか?

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

lua - 光線平面の交差前にバウンディングボックスの関連する平面を選択する

立方体/バウンディングボックスの内側または外側にあるかどうかをテストする必要があるオブジェクトを追跡しています。それらが外側にある場合は、光線平面の交差を実行して、立方体の平面の1つ上の点を計算します。光線はボックスの中央から始まり、オブジェクトに向かっています。平面は、立方体を構成する6つの平面の1つです。

私が避けたいのは、6つの平面すべてで光線平面の交差を常にテストしているということです。だから私は賢くて、最初に各平面法線と光線の間の内積を計算すると思いました。次に、角度が最も小さいもの(1に最も近いもの)を選択します。

これは中途半端にしか機能しません。オブジェクトが平面の1つと位置合わせされている場所があり、関数が間違った平面を選択します。ほとんどの場合それは機能します、そして私はそれがなぜであるか疑問に思います。私のアプローチには根本的に何か問題があるに違いないと思います。

これが私の定義した平面で、それぞれにラベルが付いています。座標系の0,0,0は、立方体の1つの角です。

次に、次の関数を使用します。

私はここで何が欠けていますか?

すべての平面で衝突テストを実行してから、立方体の中心に最も近い点を選択することもできると思いますが、それは無駄のようです。

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

xna-4.0 - 長方形の中に含まれる XNA Vector2 パス

こんにちは、私は XNA を初めて使用し、マウス クリックを使用してキャラクターがある場所から別の場所に移動するゲーム プロトタイプを開発しようとしています。

現在の位置を表す Rectangle があります。プレイヤーのマウス入力を使用して、ターゲットの位置を Vector2 として取得します。Vector2 減算により、ソースからターゲットへの方向ベクトルを抽出します。

タイル マップを使用して世界を表現します。すべてのセルは 32x32 ピクセルです。

私がやりたいことは、上記の方向ベクトルがマップ上の青いタイルを通過するかどうかを確認することです。青いタイルはマップ上で 1 です。

これを行う方法がわかりません。線形方程式と三角関数の公式を使用することを考えましたが、実装するのが難しいと感じています。ベクトルを正規化し、32 を掛けてベクトルのパスに沿って 32 ピクセルの長さの間隔を取得しようとしましたが、うまくいかないようです。何か問題があるかどうか、またはこの問題を解決する別の方法があるかどうか、誰か教えてもらえますか? ありがとう

0 投票する
4 に答える
14735 参照

math - glmでvec4の外積を計算するには?

コンパイル エラーが発生する理由: 「cross(glm::vec4&, glm::vec4&)」の呼び出しに一致する関数がありません</p>

しかし、それはvec3でうまく動作しますか?