[QGIS-Developer] QgsTriangle.angles() return wrong values ?

Andrea Giudiceandrea andreaerdna at libero.it
Sat Dec 4 10:45:20 PST 2021


Il 04/12/2021 13:52, Nicolas Godet ha scritto:
> >>> triangle.angles()
> [0.7119509950830287, 0.0008857138004074727, 0.85795961791146]
> >>> [math.degrees(a) for a in triangle.angles()]
> [40.79178723839677, 0.05074766261984076, 49.157465098983366]
>
> We should have a near-90° angle, which we don't...

Hi Nicolas,
it seems the QgsTriangle::angles() fails to correctly return the value 
of angles greater than 90° deg. (Pi/2 rad.).

Actually the function code strangely subtract 90 to such angles:

https://github.com/qgis/QGIS/blob/dd0cd13a00998bc153c0b6519ea75038b57a6df5/src/core/geometry/qgstriangle.cpp#L397-L403
   angles.append( ( a1 > M_PI_2 ? a1 - M_PI_2 : a1 ) );
   angles.append( ( a2 > M_PI_2 ? a2 - M_PI_2 : a2 ) );
   angles.append( ( a3 > M_PI_2 ? a3 - M_PI_2 : a3 ) );

In fact, the correct value of the angle is 90.05074766261984076 deg. and 
not 0.05074766261984076.

Regards.

Andrea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20211204/4e8eb718/attachment.html>


More information about the QGIS-Developer mailing list