2 Stimmen

Berechnen Sie den Blickwinkel für ein bestimmtes Objekt im Sichtfeld.

Ich habe den Blickfeldberechnet

float FOV = camera.activeFormat.videoFieldOfView;

Aber es ist das Blickfeld des iPhones.

Ich muss die Breite des Objekts mithilfe des Blickfelds berechnen. Wie kann ich entweder berechnen 1) Blickfeld für ein bestimmtes Objekt oder 2) Breite des Objekts mit der Kamera

Ich habe untenstehende Markierung im Bild:

Winkel AOB = FOV, den ich habe

A'O und B'O habe ich bereits berechnet.

Müssen den Winkel A'OB' berechnen und damit schließlich mein Ziel erreichen, A'B' (Breite des Objekts) zu berechnen

Bildbeschreibung eingeben

2voto

impact27 Punkte 517

Sie benötigen 3 unabhängige Informationen über ein Dreieck, um es zu charakterisieren, sonst beschreiben Sie nur eine Klasse von Dreiecken. Informationen können Winkel oder Längen sein.

In Ihrem Fall haben Sie zwei Informationen über das Dreieck OA'B' und eine über OAB, daher können Sie nichts tun.

Wenn Sie mehr Informationen hätten, wie den horizontalen % des Bildschirms, den Ihr Objekt einnimmt, könnten Sie eine Beziehung zwischen FOV und dem Winkel A'OB', den Sie benötigen, durch Multiplikation finden. (X% * FOV = A'OB')

Jetzt, wenn Sie A'OB', OA' und OB' haben, können Sie A'B' mit Trigonometrie berechnen.

0voto

Keith Olson Punkte 1

Wenn ich dich richtig verstehe, brauchst du immer noch die Entfernung zum Objekt. Sobald du das hast, hast du zwei Seiten eines Dreiecks und kannst jetzt A'OB' wie folgt berechnen:

  1. Nennen wir A'B'/2 (d. h. den Mittelpunkt von A'B') C'. (OC' ist dann die Entfernung zum Objekt.)
  2. A'C'O (oder B'OC') bilden ein rechtwinkliges Dreieck.
  3. OC'/OA' entspricht dem Kosinus von A'OC'.
  4. Multiplizieren wir den Arkuskosinus von OC'/OA' mit 2, erhalten wir den Winkel A'OB'.
  5. Wenn du nur die Länge von A'B' möchtest, wird es noch einfacher. Multipliziere die Quadratwurzel von (OA' Quadrat minus OC' Quadrat)' mit 2 und du hast die Länge von A'B'.

Macht das Sinn?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X