Hello everybody,
I’m working on computing points on the circumference of a circle in order to render it with Vectrosity. In order to get these points, I make use of Vector3.Lerp(). There is a given radius and origin of the circle and I’ve got two direction Vectors which are based on a plane (context of linear algebra) which pretty much describe the bearing of the circle.
So this is the snippet which should get the job done:
// compute circle points
List<Vector3> circlePoints = new List<Vector3>();
float r = intersectionCircle.GetRadius(); // 1 in this case
Vector3 o = intersectionCircle.GetOrigin(); // (0,0,0) in this case
Vector3 dirA = new Vector3(-0.4f, 0.0f, -0.9f);
Vector3 dirB = new Vector3(-1f, 0.0f, 0f);
float csScale = 0.05f;
for (int i = 0; i < 20; i++)
{
float ratio = (float)i / 20f;
Vector3 pointOnCircumference = Vector3.Lerp(dirA, dirB, ratio);
float x = pointOnCircumference.x * csScale;
float y = pointOnCircumference.y * csScale;
float z = pointOnCircumference.z * csScale;
Debug.Log(x + " " + y + " " + z);
circlePoints.Add(new Vector3(x, y, z));
Debug.Log(new Vector3(x, y, z));
}
x, y and z are holding the proper values, but as soon as I use these values to construct a Vector3 object, x, y and z of the Vector3 object equal 0 in every case.
What’s going on with that behavior?