Advertisement
Guest User

Untitled

a guest
May 9th, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.23 KB | None | 0 0
  1. package scanner.main
  2.  
  3. /**
  4.  * Private property.
  5.  * User: jIRKA
  6.  * Date: 8.5.2015
  7.  * Time: 16:48
  8.  */
  9. object Calculator {
  10.  
  11.   val laserPivotX = 90f
  12.   val laserPivotZ = 50f
  13.   val laserPivotZeroAngle = -40f
  14.  
  15.   def calculate(ptX: Int, ptY: Int, horizontalFov: Float, verticalFov: Float, width:Int, height: Int, laserAngle: Int, plateRotation: Float): (Float, Float, Float) = {
  16.     val alpha = ptX * horizontalFov / width + 90 - horizontalFov / 2
  17.  
  18.     println(alpha)
  19.  
  20.     val alRad = Math.toRadians(alpha) // alpha radians
  21.     val laRad = Math.toRadians(laserPivotZeroAngle - laserAngle) // laser radians
  22.  
  23.     val t = - (Math.sin(alRad) * laserPivotX - Math.cos(alRad) * laserPivotZ) / (- Math.cos(laRad) * Math.cos(alRad) + Math.sin(laRad) * Math.sin(alRad))
  24.  
  25.     println(t)
  26.  
  27.     val x3D = -(laserPivotX + Math.sin(laRad) * t).toFloat
  28.     val z3D = (laserPivotZ + Math.cos(laRad) * t).toFloat
  29.  
  30.     val gamma = ptY * verticalFov / height - verticalFov / 2
  31.  
  32.     val y3D = -(Math.sin(Math.toRadians(gamma)) * Math.sqrt(x3D * x3D + z3D * z3D)).toFloat
  33.  
  34.     (x3D, y3D, z3D)
  35.  
  36.   }
  37.  
  38. }
  39.  
  40.  
  41.  
  42. val res = Calculator.calculate(340, 406, 54, 41, 648, 489, 2, 0)
  43.   println("x: " + res._1)
  44.   println("y: " + res._2)
  45.   println("z: " + res._3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement