タグ付けされた質問 「rotation」

回転とは、特定の軸を中心としたオブジェクトの円運動です。

2
球の周りの任意の回転
ユーザーが球の表面を動き回れるようにするメカニズムをコーディングしています。球上の位置は現在、thetaおよびとして保存されますphi。ここでthetaは、現在の位置のz軸とxz投影の間の角度(つまりy軸を中心とした回転)でphi、y軸から位置までの角度です。私はそれを不十分に説明しましたが、本質的にはtheta = yaw、phi = pitch Vector3 position = new Vector3(0,0,1); position.X = (float)Math.Sin(phi) * (float)Math.Sin(theta); position.Y = (float)Math.Sin(phi) * (float)Math.Cos(theta); position.Z = (float)Math.Cos(phi); position *= r; これは正確だと思いますが、間違っているかもしれません。半径のあるワールド空間の原点で、球の表面の周りを任意の疑似2次元方向に移動できる必要がありますr。たとえば、ホールディングWは球体の周りをプレーヤーの向きに対して上方向に移動する必要があります。 球体上の位置/方向を表すためにクォータニオンを使用する必要があると思いますが、正しい方法を考えることはできません。球面形状は、私の強力なスーツではありません。 基本的に、次のブロックを埋める必要があります。 public void Move(Direction dir) { switch (dir) { case Direction.Left: // update quaternion to rotate left break; case Direction.Right: // update …

4
GLM:四元数に対するオイラー角
私が問題を抱えているので、GL数学(GLM)を知っていることを望みます、私は破ることができません: オイラー角のセットがあり、それらの間のスムーズな補間を実行する必要があります。最良の方法は、それらをクォータニオンに変換し、SLERPアルゴリズムを適用することです。 私が抱えている問題は、オイラー角でglm :: quaternion を初期化する方法です。 GLMドキュメンテーションを何度も読みましたが、適切なが見つからずQuaternion constructor signature、3つのオイラー角が必要です。私が見つけた最も近いものは 、角度の値とその角度の軸をとるangleAxis()関数です。注意してください、私が探しているのは、方法、解析方法RotX, RotY, RotZです。 参考までに、これは上記のangleAxis() 関数のシグネチャです。 detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)

2
スプライトを向いている方向に移動するにはどうすればよいですか?
Java / Slick 2Dを使用しています。マウスを使用してスプライトを回転させ、矢印キーを使用してスプライトを移動しようとしています。スプライトを回転させることは問題ありませんが、本来の方向に動かすことができません。「進む」を押すと、スプライトが必ずしもマウスの方向に移動するわけではありません。実際には、画面の左側に移動するだけです。多くのゲームがこのスタイルのモーションを使用するので、これにはいくつかの標準コードが必要だと確信しています。誰かがトリガーが何であるかを教えてくれますか?ありがとう 編集:これは回転コードです(これは何か奇妙なことをします:https://stackoverflow.com/questions/12610320/why-is-my-image-rotating-off-center) int mX = Mouse.getX(); int mY = HEIGHT - Mouse.getY(); int pX = sprite.x; int pY = sprite.y; int tempY, tempX; double mAng, pAng = sprite.angle; double angRotate=0; if(mX!=pX){ mAng = Math.toDegrees(Math.atan2(mY - pY, mX - pX)); if(mAng==0 && mX<=pX) mAng=180; } else{ if(mY>pY) mAng=90; …

3
美学を損なわずにピクセルアートスプライトを回転させるにはどうすればよいですか?
私は今、巨大な「ゲームデザイン」の質問の前にいます。ピクセルアート風のゲームを作成しています。双線形補間を使用すると、アニメーションの問題の多くを解決できます。一方、もはや「ピクセルゲーム」ではありません。 バイリニア補間を使用すると、アニメーションは機能しますが、「ハイブリッドっぽく」見え、アートスタイルが失われます。アニメーションを台無しにするか、アートスタイルを台無しにする。どちらもないようです。 これを解決する他の方法はありますか?
11 2d  rotation  pixel-art 

3
エンティティを方向に移動させるにはどうすればよいですか?
Entityゲームティックごとに更新されるインスタンスがあります。エンティティが常に前進していると仮定しましょう。エンティティの角度を、その方向に移動させる関数に与えることができるようにしたいと思います。 moveForward(90);右に移動する必要があります。ローテーションをグローバルとして宣言した場合int、 moveForward(rotation); rotation++; その動きで小さな円を描くようになります。 これどうやってするの?私はこれがベクトル演算に関係していると思います。わからないので、簡単に説明していただければ幸いです。

2
六角形グリッド上で六角形タイルの構造を回転させるにはどうすればよいですか?
私の2Dアイソメトリックゲームでは、六角形のグリッドマップを使用しています。下の画像を参照して、ピンクの六角形を中心に水色の六角形構造を60度回転するにはどうすればよいですか? 編集: 主なヘクスは(0,0)です。他のヘクスは子供であり、それらの数は固定されています。1つの位置(この場合はその右)のみを定義し、必要に応じて他の方向(左下、右下、右上、左上、左)を計算します。他のヘクスは、Package.Add(-1,0)、Package.Add(-2,0)などのように定義されています。 switch(Direction) { case DirRightDown: if(Number.Y % 2 && Point.X % 2) Number.X += 1; Number.Y += Point.X + Point.Y / 2; Number.X += Point.X / 2 - Point.Y / 1.5; break; } このコードNumberではメインのヘクスでPointあり、回転させたいヘクスですが、機能しません。


5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

3
Slerping回転ミラー
次のコードを使用して、ターゲットを監視するためにゲームキャラクターを回転させます。 transform.rotation = Quaternion.Slerp(startQuaternion, lookQuaternion, turningNormalizer*turningSpeed/10f) startQuaternionは、新しいターゲットが指定されたときのキャラクターの現在の回転です。 lookQuaternionは、キャラクターが見るべき方向であり、次のように設定されています。 destinationVector = currentWaypoint.transform.position - transform.position; lookQuaternion = Quaternion.LookRotation(destinationVector, Vector3.up); turnNormalizerはTime.deltaTimeインクリメントされるだけturningSpeedで、エディターで指定される静的な値です。 問題は、ほとんどの場合、キャラクターが正常に回転する一方で、180度に近づかなければならないときに問題が発生することです。次に、時々それがジッターして回転をミラーリングします: この不十分に描かれた画像では、キャラクター(右側)が左側の円に向かって回転し始めます。左または右に回転するだけでなく、この「ミラーダンス」が開始されます。 新しいフェーシングに向かって回転し始めます その後、突然同じ角度にスナップしますが、反対側で回転し続けます ターゲットを見るまで、この「ミラーリング」を長時間実行します。これは、四元数、slerping / lerpingなどの問題ですか? EDIT1: どうやら、問題は回転自体から発生するのではありません。より可能性の高い問題は、キャラクターが回転しているときに面に向かって移動することです。キャラクターが動くことを許可されているとき、向きとターゲットの間の角度を制限することで、ジッター/ミラーリング回転が減少し、時には解消されます。 もちろん、これはさらに多くの疑問を投げかけますが、なぜ問題なくキャラクターが同時に移動および回転できないのですか?運動に使用されるコード: transform.Translate(Vector3.forward * runningSpeed/10f * Time.deltaTime);

2
振り子を振る方法を教えてください。
おもりをつけて、振り子のように前後に揺れるロープをシミュレートしたい。実際の物理学は過剰です。同じ動きを延々と繰り返すだけです。 jQueryは、私が探しているものに似た「スイング」の容易さを備えています。それはどのように機能しますか? である角度から別の角度に回転することを考えてMath.easeOutExpoいましたが、実際の振り子は別の方法で緩和されます...

4
2つのオブジェクト間で回転を維持する
XNAゲームでは、2つのオブジェクトが衝突しています。最初のオブジェクトが他のオブジェクトと衝突すると、そのオブジェクトにラッチして、世界中を移動することができます。ここで数学に問題があります(数学は私の強みではありません)。私は現在、2番目のオブジェクトを最初のオブジェクトにラッチして移動しますが、元の方向を維持することができません。そのため、オブジェクトが上を向いている場合は、元のアイテムと一緒に回転している方法に対してこの方向を維持する必要があります。 これを達成するための最善の方法に関するヒントはありますか?
9 xna  rotation 

1
スプライトの回転に使用されるXboxサムスティック。基本的な数式により、90度間隔で「スティック」または「スティッキー」に感じます。どのようにスムーズな回転を得るのですか?
非常に基本的な式を使用して、Xboxコントローラーのサムスティックに基づいてスプライト(宇宙船など)が向いている角度を計算します。つまり、サムスティックを使用して船を回転させます。 私の主な更新方法では: shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y); 私のメインの描画方法では: spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1); ご覧のとおり、非常にシンプルなので、現在のラジアンをサムスティックから取り出してフロートに格納します shuttleAngleこれをシャトルを描画するための回転角度(ラジアン)引数として使用します。 どういうわけか、スプリントを回転させると、0、90、180、270度の角度でベタつく感じがします。それらの角度で解決したいと考えています。同様のメカニズムを使用するゲームで感じるようなスムーズで自然な回転は得られません。PS:私のXboxコントローラーは大丈夫です!
9 xna  c#  sprites  rotation  gamepad 

3
クォータニオンを使用してヘリコプターを制御できますか?
単純化されたヘリコプター(現時点では立方体)を3Dでシミュレーションしようとしていますが、回転に問題があります。ヘリコプターは3つの軸に沿って回転できます。 後部プロペラを使用してそれ自体で回転する:y軸回転 左または右に傾けて左または右に移動:z軸回転 上下に傾けて後方または前方に移動:x軸回転 各軸を個別に制御できる必要があります。これまでのところ、オイラー角を使用してみましたが、使用する回転順序が何であれ、ジンバルロックまたは一部の軸の「スイッチ位置」にぶつかります。 クォータニオンを使用する必要があるようですが、クォータニオンは方向と角度を使用するため、個々の軸を制御する方法がわかりません。3つの四元数を作成して、それらを乗算する必要がありますか?同じ問題が発生することはないでしょうか? 奇妙なことに、ヘリコプターの3つの軸(親指を上げる= y、インデックス= z、中央= x)を指で表すと、これらの問題にぶつからないようです。どうして?
9 3d  rotation 

2
3Dオブジェクトを2Dサーフェスにレンダリング(埋め込みシステム)
私はある種の組み込みシステムに取り組んでおり、自由な時間にその描画機能をテストしたいと思っています。 問題のシステムは、EasyMX Stellarisボードに接続されたARM Cortex M3マイクロコントローラーです。そして私は小さな320x240 TFTスクリーンを持っています:) 今、私には毎日自由時間があり、回転する立方体を作成したいと思います。ARM用Micro C PROには3D描画機能がないため、ソフトウェアで実行する必要があります。 『DirectX 10を使用した3Dゲームプログラミング入門』という本から、変換の行列代数を知っていますが、DirectXでカメラを正しく設定できると便利です。 2Dオブジェクトを回転させることができると思いますが、3Dオブジェクトをどうやって使うのですか? どんなアイデアや例でも大歓迎です。私はアドバイスを好みますが。これを理解したいのですが。

1
2点間の角度
Unityの部屋でランダムなポイントまで歩くキャラクターがいます。問題は、彼が常に一方向を向いていることです。C#で、キャラクターが現在向いている方向とターゲットの位置を取得するコードを書き、それらの間の角度を計算して、その量のキャラクターを回転させます。私はこのLookAt機能を試しましたが、キャラクターがターゲットに向かって円弧状に歩くようになり、常にターゲットを見ると非常に不自然に見えます。
9 unity  rotation 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.