CubicSegment: Avoid iterating double

Change-Id: I7f98247a20228a1087291138394ebc7469ad7b18
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Knud Dollereder <knud.dollereder@qt.io>
This commit is contained in:
Jarek Kobus
2023-08-04 13:07:49 +02:00
parent 81d38bb711
commit af731de4df

View File

@@ -247,15 +247,15 @@ QPointF CubicSegment::sample(double t) const
double CubicSegment::minimumDistance(const QPointF &pickPoint, double &tReturnValue) const double CubicSegment::minimumDistance(const QPointF &pickPoint, double &tReturnValue) const
{ {
double actualMinimumDistance = 10000000.; double actualMinimumDistance = 10000000.;
for (double t = 0.0; t <= 1.0; t += 0.1) { const int tMax = 10;
QPointF samplePoint = sample(t); for (int t = 0; t <= tMax; ++t) {
QPointF distanceVector = pickPoint - samplePoint; const QPointF samplePoint = sample(double(t) / tMax);
const QPointF distanceVector = pickPoint - samplePoint;
if (distanceVector.manhattanLength() < actualMinimumDistance) { if (distanceVector.manhattanLength() < actualMinimumDistance) {
actualMinimumDistance = distanceVector.manhattanLength(); actualMinimumDistance = distanceVector.manhattanLength();
tReturnValue = t; tReturnValue = t;
} }
} }
return actualMinimumDistance; return actualMinimumDistance;
} }