@BlinCT

Как расчитать точки для кривой в зависимости от размера области отображения?

Всем привет.
У меня имеется в С++ алгоритм для поулчения расчетов точек для кривой. Расчитываю методом Лагранжа.
Но у меня так же есть область которая может быть по высоте и ширине динамически менятся.
Получается я должен пересчитывать точки еще и исходя из размера полотна.
Может кто-то потсказать как это можно сделать?
Ниже прикладываю мои расчеты.
Спасибо заранее

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;
    }
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы