From e24cc5564a240dee1797ff42afb85ccfb977cee8 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 29 Oct 2019 21:53:00 +0200 Subject: [PATCH] BUG FIX IN PITCH AND YAW CALCULATION --- Main/chameleon-vision.iml | 1 + .../com/chameleonvision/vision/camera/CameraValues.java | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Main/chameleon-vision.iml b/Main/chameleon-vision.iml index 7106dd857..46611ad3c 100644 --- a/Main/chameleon-vision.iml +++ b/Main/chameleon-vision.iml @@ -10,6 +10,7 @@ + diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraValues.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraValues.java index 0ea7e8873..f429b98d2 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraValues.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraValues.java @@ -12,6 +12,7 @@ public class CameraValues { public final double CenterX; public final double CenterY; public final double DiagonalView; + public final double DiagonalAspect; public final Fraction AspectFraction; public final int HorizontalRatio; public final int VerticalRatio; @@ -35,8 +36,9 @@ public class CameraValues { AspectFraction = new Fraction(ImageWidth, ImageHeight); HorizontalRatio = AspectFraction.getNumerator(); VerticalRatio = AspectFraction.getDenominator(); - HorizontalView = FastMath.atan(FastMath.tan(DiagonalView / 2) * (HorizontalRatio / DiagonalView)) * 2; - VerticalView = FastMath.atan(FastMath.tan(DiagonalView/2) * (VerticalRatio / DiagonalView)) * 2; + DiagonalAspect = FastMath.hypot(HorizontalRatio, VerticalRatio); + HorizontalView = FastMath.atan(FastMath.tan(DiagonalView / 2) * (HorizontalRatio / DiagonalAspect)) * 2; + VerticalView = FastMath.atan(FastMath.tan(DiagonalView / 2) * (VerticalRatio / DiagonalAspect)) * 2; HorizontalFocalLength = ImageWidth / (2 * FastMath.tan(HorizontalView /2)); VerticalFocalLength = ImageHeight / (2 * FastMath.tan(VerticalView /2)); }