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

Nicolas Godet nicolas.godet at outlook.fr
Sat Dec 4 11:32:47 PST 2021


A workaround would be to add 90° to the lowest value if the sum is lower than 180°.
https://github.com/Artelia/Mesh_tools/commit/5d40a8807f1c8264ccff51b365ce8d58ac333011

That’s not ideal, especially in case of very flat triangle…


Le 4 déc. 2021 à 19:52, Nicolas Godet <nicolas.godet at outlook.fr> a écrit :


Seems an issue more than a feature to me.
At least, the doc should reflect this behavior.

Should I open a issue on GH ?

Le 4 déc. 2021 à 19:45, Andrea Giudiceandrea <andreaerdna at libero.it> a écrit :

 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
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer at lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20211204/16c15fef/attachment.html>


More information about the QGIS-Developer mailing list