Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 15 December 2023 17:58

piedro25
Participant occasionnel
Date d'inscription: 22 Dec 2016
Messages: 43

QGIS: Comment calculer le pivot d un vecteur directement ?

Bonjour,

Je me permet de vous solliciter pour un problème qui relève plus de la curiosité personnelle qu'autre-chose.

J'ai une table avec des vecteurs (orientés, avec une longueur définie), ce sont des façades de bâtiments.

J'ai extrait l'orientation de ces vecteurs via l'outil azimut de qgis, jusque là tout va bien.
J'ai ensuite appliqué un pivotage du vecteur en lui appliquant -90 degrés.

Il se trouve qu'à la sortie j'ai des valeurs négatives en degrés ex : -1, quand d'autres sont justes.
J'ai trouvé la solution à mon problème en distinguant par un CASE les valeurs négatives pour leur ajouter 360 et retrouver la valeur normale de l'angle.

Est-ce qu'il y aurait une solution qui me permettrait de passer cette dernière étape et retrouver la valeur de l'angle entre 0 et 360 degré sans avoir à effectuer ce calcul?


De mon côté j'ai essayé plusieurs fois en travaillant directement en radians de résoudre mon problème, notamment en utilisant le modulo de pi ou en soustrayant directement pi/2à la conversion en degrés, je retombe toujours sur ces mêmes valeurs.

De ce que j'ai compris la fonction AZIMUTH de qgis prend pour origine le Nord qui est le point Zéro, le calcul est ensuite effectué dans le sens horaire et non dans le sens trigonométrique, mais donne quand même une valeur en radians.
Voilà la formule utilisée:

Code:

round (degrees(azimuth(start_point($geometry), end_point($geometry))) -90)

Mes souvenirs de math commencent à dater, mais j'aimerais néanmoins vraiment comprendre comment le contourner t comprendre comment tourne cette machine.

En vous remerciant pour votre aide.

Hors ligne

 

Pied de page des forums

Powered by FluxBB