Q:

I need to calculate and add two points between two given points how do i use a formula?

In the question before I got this method:
private static List<PointF> ExtendPoints(
    PointF pt1,
    PointF pt4,
    int numberOfPoints)
{
    extendedPoints.Add(pt1);

    for (double d = 1; d < numberOfPoints - 1; d++)
    {
        double a = (Math.Max(pt1.X, pt4.X) - Math.Min(pt1.X, pt4.X)) * d / (double)(numberOfPoints - 1) + Math.Min(pt1.X, pt4.X);
        double b = (Math.Max(pt1.Y, pt4.Y) - Math.Min(pt1.Y, pt4.Y)) * d / (double)(numberOfPoints - 1) + Math.Min(pt1.Y, pt4.Y);
        var pt2 = new PointF((float)a, (float)b);
        extendedPoints.Add(pt2);
    }

    extendedPoints.Add(pt4);
    return extendedPoints;
}

But the results are not right.
This is how I'm using the method:
for (int i = 1; i < clouds.Count; i++)
{
    extendedPoints = ExtendPoints(clouds[i - 1], clouds[i], 2);
}

clouds and extendedPoints are both List<PointF> type.
The formula in the method should be: (n-1)*m + n.
For example:
Lets say the length of the clouds list is 2.
I have in clouds two points:
Index 0: X = 120 Y = 125

Index 1: X = 130 Y = 135

Now the method get the two points and the number 2 that means the method should implant between each two given points another two points:
So now extendedPoints should be for example:
Index 0: X = 120 Y = 125
Index 1: X = 126 Y = 127
Index 2: X = 128 Y = 129
Index 3: X = 130 Y = 135

Now lets say the list clouds length is 3 so the method will get each time two points and implant between them new 2 points:
So lets say clouds contains 3 points now:
Index 0: X = 100 Y = 125
Index 1: X = 130 Y = 147
Index 2: X = 150 Y = 160

So between index 0 and index 1 the method implants 2 points, so now it's 4.
Then between index 1 and index 2 the method implant another new two points.
So together extendedPoints should contain now 7 points.
Just like the formula:
(n-1)*m + n

n is the length of the original list clouds. m is the number of points the method should implant between two points.
So if the clouds would have 5 points: (5-1)*2 + 5 = 13
And if clouds would contain 10 points: (10-1)*2 + 10 = 28
Now how do I implement this in the method?
The rules:

Get two points implanted between the two points another new 2 points.
Keep the points order first pt1 then two new points and in the end pt4.
Using the formula: (n-1)*m + n

The way the method is now it's not giving the right result. For example if the clouds contains 2 points and the method should create 2 new points the list extendedPoints should contain 4 points:
(2-1)*2 + 2 = 4

But I'm getting 2 points, extendedPoints contains only 2 points. And that's wrong!
How do I implement it using the formula? 
More explanation:
If I give two points: first iteration pt1 and pt4 then implant between them two new points.
In this first iteration pt1 is contained in clouds at index 0 and pt4 is in clouds at index 1.
In the next iteration pt1 should be in clouds at index 1 and pt4 at index 2, and implant two new points between them.
Then next iteration, pt1 at index 2 and pt4 at index 3.
And so on, depending on the clouds list length.
And when adding the points to the list, the method should always add first pt1 and then the two new points, then pt4.

A:

You say:

Now the method get the two points and the number 2 thats mean the method should implent between each two given points another two points

Yet your loop condition says, that for m in-between points you generate m-2:
for (double d = 1; d < numberOfPoints - 1; d++)

If for m = 2 you want two points to be generated it should read:
for (double d = 1; d <= numberOfPoints; d++)

And inside the loop you should probably scale d with (double)(numberOfPoints + 1) instead of (double)(numberOfPoints - 1).

