- Home /
Question by
AlucardJay · Aug 11, 2012 at 06:45 PM ·
vector3math
method to rotate a Vector3 around a Vector3 by specified direction and degrees
I have created a way to calculate a Vector3 that is rotated around another Vector3, but I would like a way that uses proper Vector3 math (i.e not using an empty gameObject). Can anyone help?
CartesianCoordinates = new Vector3[12];
var myEmpty : GameObject = new GameObject("GameObject") as GameObject;
var thePivot : Vector3 = Vector3.zero;
var rotatedAngleX : float = 60.0;
for (var c : int = 0; c < 12; c ++)
{
myEmpty.transform.position = CartesianCoordinates[c];
myEmpty.transform.RotateAround( thePivot, -Vector3.right, rotatedAngleX );
CartesianCoordinates[c] = myEmpty.transform.position;
}
Comment
Best Answer
Wiki
Answer by idunlop_oefun · Aug 11, 2012 at 07:30 PM
Sorry, I don't use JS - but check out:
// otherVector is your Vector3 relative to the origin (so you'll have to convert from world space before doing this)
Quaternion q = Quaternion.AngleAxis(30, Vector3.up);
Vector3 rotatedVector = q * otherVector;
Thanks, I didn't know about AngleAxis. I changed the loop content to the below, and it worked.
var q : Quaternion = Quaternion.AngleAxis( rotatedAngleX, -Vector3.right );
CartesianCoordinates[c] = q * CartesianCoordinates[c];
Your answer
Follow this Question
Related Questions
Reverse of this function? 0 Answers
how do i keep a gameobject in between the union of 2 or more than 2 circles 0 Answers
How to get translation from matrix? 1 Answer
Finding Nearest Object Both Positive And Negative? 1 Answer
Given a vector, how do i generate a random perpendicular vector? 5 Answers