Excellentes réponses déjà, je voudrais juste ajouter quelques autres choses que vous devriez prendre en considération. Comme hardlib et Goufalite l'ont déjà mentionné, la façon de le faire est de manière trigonométrique. J'ai dessiné une représentation 2D de la caméra et de l'objet IoT:
Comme vous pouvez le voir, le champ de vision de la caméra va être plus grand que l'objet - s'il n'est pas à courte portée, lorsque l'objet s'éloigne davantage.
Maintenant, vous voudrez peut - être que la caméra soit toujours centrée sur l'objet. Dans ce cas, vous pouvez simplement prendre les calculs référencés par hardlib:
ϴ = arctan(y/x)
... qui sera l'angle dans le sens antihoraire de l'axe des x, par convention. Vous aurez également besoin de l'angle par rapport au niveau:
α = arctan(z / ((y^2+x^2)^1/2))
Évidemment, vous devrez calculer en fonction de la position de la caméra à l'origine sur les trois axes.
D'un autre côté, vous préférerez peut-être ne pas faire bouger la caméra plus que nécessaire, c'est-à-dire que la caméra ne bouge que lorsque l'objet semble sur le point de sortir du cadre. Dans ce cas, vous voudrez probablement une variable de "pression" qui rendra la caméra plus susceptible de changer son angle en fonction de la distance entre l'objet et le bord du cadre.
Si vous suivez cette route, vous devrez connaître l'angle du champ de vision de la caméra dans les deux champs de vision, afin de pouvoir déterminer où l'objet est comparé au champ de vision de la caméra.