0
以下の画像に示すように、指(または任意のオブジェクト)が特定のボックス(画面上)を指しているかどうかを検出したいと考えています。2Dインタラクションボックスとやりとりするための座標マッピング
以下のコードを使って指のxy座標を得ることができますが、対話ボックスを定義して座標をマップして画面外のボックスに一致するかどうかを確認する最も簡単な方法は何ですか?
私はWindows
のleap motion SDK
(3.2.0)の最新バージョンを使用しています。
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))
出力は次のようになります。指が指している場所すべての
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
こんにちは、私はボックスを定義する簡単な方法とこれを解決する方法を求めました! これは既に良い方法です: 'import matplotlib.path as path' ' box_a = path.Path([(0,0)、(0,100)、(100,100)、(100,0) ]) ' ' isInA = box_a.contains_points([(app_x、app_y)]) ' – theAlse