Всем привет.
У меня имеется в С++ алгоритм для поулчения расчетов точек для кривой. Расчитываю методом Лагранжа.
Но у меня так же есть область которая может быть по высоте и ширине динамически менятся.
Получается я должен пересчитывать точки еще и исходя из размера полотна.
Может кто-то потсказать как это можно сделать?
Ниже прикладываю мои расчеты.
Спасибо заранее
QList<QPointF> tmpResultPoints;
qreal currentX = m_linePoints.begin()->x();
qreal endX = m_linePoints.last().x();
while(currentX <= endX)
{
qreal workX = currentX;
qreal calcY = 0.0;
for(int j = 0; j < m_linePoints.count(); ++j)
{
qreal Hi = 0.0;
bool bFirst = true;
for(int i = 0; i < m_linePoints.count(); ++i)
{
if(i != j)
{
qreal calc = (workX - m_linePoints.at(i).x()) / (m_linePoints.at(j).x() - m_linePoints.at(i).x());
if(bFirst)
{
Hi = calc;
bFirst = false;
}
else
{
Hi *= calc;
bFirst = false;
}
}
}
qreal Px = m_linePoints[j].y() * Hi;
calcY += Px;
}
tmpResultPoints.append(QPointF(workX, calcY));
currentX += m_stepSize;
}