View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# vector to xyz rotation? Aligning an object up to a vector?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

### #1mooreaa  Members

Posted 20 August 2007 - 09:24 AM

Hello, I'm a little rusty on my math and am looking for some help. I have a vector with xyz components, and I want to align an object to the direction of a vector. How do I get component (x y z) rotation value to orient my object to my vector? I tried doing the acos() of the dot product of each of the component vectors, but that was all wonky.

### #2SiCrane  Moderators

Posted 20 August 2007 - 09:27 AM

You can take the cross product of the current orientation vector with the desired orientation vector to get an axis of rotation, and the magnitude of the cross product would give the angle of rotation.

### #3Trenki  Members

Posted 20 August 2007 - 09:31 AM

As SiCrane pointed out you need a current orientation vector plus the desired orientation. You can get axis of rotation by the cross product. For the angle you need the acos of the dot product between the normalized current and normalized desired orientation (cause the dot product of two normalized vectors gives the cosine of the angle between them).

### #4mooreaa  Members

Posted 20 August 2007 - 12:33 PM

Thanks guys I got them pointing in the right direction.

Now is there anyway to keep to apply an upvector of some kind to avoid the unwanted rotation along its orientation axis?

### #5scgames  Members

Posted 20 August 2007 - 12:50 PM

Quote:
 Original post by mooreaaNow is there anyway to keep to apply an upvector of some kind to avoid the unwanted rotation along its orientation axis?
Can you clarify that a bit? In particular, what exactly do you mean by 'orientation axis'?

### #6mooreaa  Members

Posted 20 August 2007 - 12:57 PM

SiCrane mention the orientation vector. This vector points in the direction of my original mesh.

The problem is that mesh will spin along this axis as i move my target vector around.

My object is a flat plate arrow. Indicating the direction.

The arrow is supposed to indicate the flow in a given direction.

I want to use this from a top down perspective... so that if i look from the top down, i can see which way the arrow is oriented.

With the method here, at some angles, i only see the edge of my flat plate since the arrow is rotated 90deg along its orientation vector.

### #7scgames  Members

Posted 20 August 2007 - 03:03 PM

Quote:
 Original post by mooreaaSiCrane mention the orientation vector. This vector points in the direction of my original mesh.The problem is that mesh will spin along this axis as i move my target vector around.My object is a flat plate arrow. Indicating the direction.The arrow is supposed to indicate the flow in a given direction.I want to use this from a top down perspective... so that if i look from the top down, i can see which way the arrow is oriented.With the method here, at some angles, i only see the edge of my flat plate since the arrow is rotated 90deg along its orientation vector.
The 'orientation vector' SiCrane was referring to is the vector associated with the object (usually one of the basis vectors, i.e. a local axis) that you want to align with the target vector. For example, with a guided missile the orientation vector would be the forward vector, while with a vehicle following a terrain the orientation vector would be the up vector.

From what you've said, it sounds like it's the forward vector you want to align (that is, the direction in which the arrow is pointing). You also mentioned a 'top-down' view though, which suggests that maybe this is a 2-d problem. Is that the case? If so, the solution is quite a bit simpler than what's been proposed here.

That said, the axis-angle method shouldn't be causing the arrow to roll, so I'm guessing there's something else going wrong somewhere.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.