Je souhaite détecter si un doigt (ou un objet) pointe vers une certaine case (sur l'écran) comme indiqué dans l'image ci-dessous.Mappage des coordonnées pour interagir avec une boîte d'interaction 2D
Le code suivant peut être utilisé pour obtenir les coordonnées xy du doigt, mais quel est le moyen le plus simple de définir les cases d'interaction et de mapper les cordinates pour voir si elles correspondent à l'extérieur de l'écran. J'utilise la dernière version de leap motion SDK
(3.2.0) sur Windows
.
def on_frame(self, controller):
app_width = 800
app_height = 600
# Get the most recent frame and report some basic information
frame = controller.frame()
pointable = frame.pointables.frontmost
if pointable.is_valid:
iBox = frame.interaction_box
leapPoint = pointable.stabilized_tip_position
normalizedPoint = iBox.normalize_point(leapPoint, False)
app_x = normalizedPoint.x * app_width
app_y = (1 - normalizedPoint.y) * app_height
#The z-coordinate is not used
print ("X: " + str(app_x) + " Y: " + str(app_y))
La sortie ressemble alors à ceci:
X: 467.883825302 Y: 120.019626617
X: 487.480115891 Y: 141.106081009
X: 505.537891388 Y: 164.418339729
X: 522.712898254 Y: 189.527964592
X: 539.482307434 Y: 213.160014153
X: 556.220436096 Y: 233.744287491
X: 573.109865189 Y: 253.145456314
salut, j'ai demandé un moyen facile de définir les boîtes et un moyen de résoudre ce problème! c'est déjà un meilleur moyen: 'Importer matplotlib.path comme chemin' ' box_a = path.Path ([(0,0), (0, 100), (100, 100), (100, 0) ]) ' ' isInA = box_a.contains_points ([(app_x, app_y)]) ' – theAlse