Как построить настраиваемую кривую между двумя точками (целое число по оси X, ось Y является плавающим) с помощью кода C / C ++ - PullRequest
0 голосов
/ 07 апреля 2020

Я получил две точки данных, ось x - это целое число, а ось y должна быть плавающей точкой в ​​пределах установленного предела, скажем, от 0,00f до 1,00f.

Я бы хотел построить регулируемую кривую между двумя точками, с настройкой по умолчанию (скажем, на 1.0f), приводящей к прямой линии.

Так, например, я получил любые две точки данных, такие как:

int x1 = 0; float y1 = 0.25f;
int x2 = 49; float y2 = 0.75f;

float yDiff = (y2 - y1) / (x2 - x1);

float dataPointArray[50];

for (int i = x1; i <= x2; i++)
{
  y1 += yDiff;

  dataPointArray[i] = y1; // This just plots a straight line

  dataPointArray[i] = atan (y1); // This plots a set curved line, although it 
                                 // does go out of bounds,
                                 // which I can easily adjust (center) after.

  dataPointArray[i] = pow (y1, ac); // Had hoped this would plot an adjustable
                                    // curve, with ac of 1 being no curve, 
                                    // and ac of 0.5f and ac of 2.0f being
                                    // curves, but float values goes WAY out of bounds
}

Я полагаю, что мне, вероятно, придется математически корректировать переменную yDiff в течение l oop с помощью «параметра кривой», чтобы он либо начинал увеличиваться медленно, затем быстрее и быстрее, или наоборот, либо начинал медленно, быстро в средний, затем снова медленный или наоборот.

...