2012-04-09 3 views
1

Ich habe eine Kamera mit den Koordinaten x, y in Höhe h, die auf die x-y-Ebene in einem bestimmten Winkel mit einem bestimmten Sichtfeld schaut. Ich möchte die 4 Ecken berechnen, die die Kamera im Flugzeug sehen kann.Berechnen Sie den Bereich, den eine Kamera in einem Flugzeug sehen kann

Es gibt wahrscheinlich eine Art Formel dafür, aber ich kann es nicht auf Google finden.

Edit: Ich sollte wahrscheinlich erwähnen, dass ich meine eine Kamera im 3D-Grafik Sinn. Insbesondere verwende ich XNA.

Antwort

0

ich je hatte für das Debuggen von Grafik-Code in 3D-Spielen, ähnliche Dinge zu tun. Ich fand die einfachste Art, darüber nachzudenken, die Vektoren zu erstellen, die die Ecken des Bildschirms darstellen, und dann den Schnittpunkt mit allen relevanten Objekten zu berechnen (in diesem Fall eine Ebene).

Werfen Sie einen Blick auf Ihre Ansichtsprojektion (oder wie auch immer der Matrixstack Ihrer Kamera aussieht, multipliziert) und realisieren Sie, dass der Bildschirmbereich Ecken mit homogonisierten Koordinaten von (-1, -1), (-1, 1), (1, -1), (1, 1) aufweist. Wenn Sie dies wissen, haben Sie eine freie Variable und können nach dem Vektor suchen, der die Ecke der Kamera darstellt.

Obwohl dies ein Schmerz ist. Es ist viel einfacher, einen Vektor für jede Ecke zu konstruieren, als ob die Kamera nicht gedreht oder übersetzt würde, und sie dann durch die Ansichtsmatrix zu transformieren, um Ihnen Weltraumvektoren zu geben. Dann können Sie den Schnittpunkt zwischen den Vektoren und der Ebene berechnen, um Ihre vier Ecken zu erhalten.

Ich habe einen Tagesjob, also überlasse ich Ihnen die Mathematik. Einige Links, die dabei helfen können, aber:

Angle/Field of view calculations

Line plane intersection

0

Ignorieren Linsenverzerrungen und unter der Annahme, das Objektiv ist fast im Brennpunkt, dann haben Sie nur ein Dreieck von der Sensorgröße und der Linse, dann die Linse zum Motiv - ähnliche Trianlges gibt Ihnen die Größe der Subjekt-Ebene.

Wenn Sie eine geneigte Objektebene wollen, die nur eine Projektion auf die Objektebene senkrecht ist