- Home /

# Can I use Quaternions to get from one point to another?

I have one sphere at 1,0,0 and another at 0,1,0 it would be a rotation of 90 degrees around the Z axis to get from one to another. How would I do t$$anonymous$$s for any two points in unity using quaternions?

How would I apply that rotation to the first point to test it to see if it gives back the second point?

Thanks, Dan

Youre Question is not clear, Sir, what exactly do you want to do ? There are several functions you could use to move an object, like transform.Translate(); transform.Rotate();

you can also check this

// Interpolates rotation between the rotations // of from and to. // (Choose from and to not to be the same as // the object you attach this script to)

var from : Transform; var to : Transform; var speed = 0.1; function Update () { transform.rotation = Quaternion.Lerp (from.rotation, to.rotation, Time.time * speed); }

testing if applying a rotation to a point gives another point, is achieved by math, 0 + 90 = 90 !!

**Answer** by CHPedersen
·
Nov 14, 2011 at 09:06 AM

If you use Quaternion.FromToRotation, you can create a Quaternion that contains the desired rotation. Just pass in the coordinates of the two spheres in the order you want the rotation to take place.

The returned quaternion can thus be multiplied into the coordinates of the first sphere to yield the coordinates of the second; t$$anonymous$$s corresponds to simply rotating a Vector3 around the coordinate system origin.

Please beware, however, that t$$anonymous$$s applies only to the specific case you described because the two spheres are both at unit vector lengths from the origin. Quaternion.FromToRotation is usually used to rotate the direction of one of a single object's axes. It works in t$$anonymous$$s case because your spheres are located at the positions corresponding to an object's local transform.right/transform.up, if you imagine an object located at 0,0,0.

If the position vectors of the two objects have unequal magnitudes, it isn't possible to rotate one to the position of the other, because rotation takes place in a circle of uniform radius, naturally. ;)

### Your answer

### Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

### Follow this Question

### Related Questions

Quaternions rotating left and right, not forward and back 1 Answer

4 rotations WTF 1 Answer

Relative Rotations and Position calculation 2 Answers

My interpretation of Random.rotation and Random.rotationUniform. Right or wrong ? 0 Answers

How to use quaternions to apply an offset to a rotation to calibrate a controller 1 Answer