#include "valuedialog.h" #include void ValueDialog::calcCurve() { std::valarray curve; curve.resize(256); QPoint p1(beginSlider->value(),0); QPoint p2(endSlider->value(),256); double m = (p1.y() - p2.y()) / (double)(p1.x() - p2.x()); int b = p1.y() - (int)(round(m * p1.x())); for (int i = 0; i < 256; ++i) { curve[i] = QMIN(255, QMAX(0, int(i * m) + b)); } emit curveChanged(curve); } void ValueDialog::showEvent(QShowEvent* ) { beginSlider->setValue(0); endSlider->setValue(255); }