Skip to content

Commit e50a331

Browse files
lbartolettinyalldawson
authored andcommitted
chore(optimization): Tiny optimization with pre-computed cos/sin from angle for QgsEllipse
Some benchmarks here: https://github.com/lbartoletti/lbartoletti.github.io/tree/master/archives/qgis/ellipse_benchmark
1 parent fee07f9 commit e50a331

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/core/geometry/qgsellipse.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -244,12 +244,12 @@ void QgsEllipse::pointsInternal( unsigned int segments, QVector<double> &x, QVec
244244
const double sinAzimuth = std::sin( azimuth );
245245
for ( double it : t )
246246
{
247-
*xOut++ = centerX +
248-
mSemiMajorAxis * std::cos( it ) * cosAzimuth -
249-
mSemiMinorAxis * std::sin( it ) * sinAzimuth;
250-
*yOut++ = centerY +
251-
mSemiMajorAxis * std::cos( it ) * sinAzimuth +
252-
mSemiMinorAxis * std::sin( it ) * cosAzimuth;
247+
const double cosT{ std::cos( it ) };
248+
const double sinT{ std::sin( it ) };
249+
*xOut++ = centerX + mSemiMajorAxis * cosT * cosAzimuth -
250+
mSemiMinorAxis * sinT * sinAzimuth;
251+
*yOut++ = centerY + mSemiMajorAxis * cosT * sinAzimuth +
252+
mSemiMinorAxis * sinT * cosAzimuth;
253253
if ( zOut )
254254
*zOut++ = centerZ;
255255
if ( mOut )

0 commit comments

Comments
 (0)