# Getting array of points shaping curve from 2 vector3 points

What I want is to get path for DoTween method DoPath(), which as a parameter expects array of vectors shaping the direction of the path. I googled some stuff and found out nothing. Just think bezier curve is good idea but i dont even know how it works. Here is an ilustration of my problem The movement must be curved, don't need linear one. Thanks in advance

• We're missing one important input: how the line should curve. There's an infinite variety of potential paths connecting point 1 & point 2 - so your game code needs to somehow specify which one is the one you want. One way this is often done is to add a third point, a "control point" that acts like a magnet to pull the curve away from a straight line. Would that work for your case? In fact, if you can provide two such magnets - one to set the direction at the start, one to set the direction at the end - you can use the CubicBezier mode built-into DoTween instead of a whole lot of waypoints. – DMGregory Jun 1 at 20:07
• I've solved my problem. thx for ur responce – Chestera Jun 1 at 22:26

So, I have found this article about bezier curves, which helped me a lot. This is code I wrote, hope it'll useful for someone

public static Vector3[] GetQuadraticBezierPoints(Vector3 startpoint, Vector3 endPoint, float curveHeigh) {
Vector3 heighPoint = startpoint + (endPoint - startpoint) / 2 + Vector3.up * curveHeigh;

Vector3[] res = new Vector3;
int maxT = 1;
int index = 0;

for (float t = 0; t <= maxT; t += 0.01f) {
Vector3 newPoint = (Mathf.Pow(1 - t, 2) * startpoint) + (2 * (1 - t) * t * heighPoint) + (t * t * endPoint);
try {
res[index++] = newPoint;
}
catch {
break;
}
}
return res;
}


This script creates 100 points, shaping curve, based on curveHeigh value, which also helps to create heigPoint variable, which is a 'control point'