2011-11-02 9 views
5

Determine angle of view of smartphone cameraと同じ質問がWP7に適用されます。 適切な方法を見つけることができないようで、私は自分でキャリブレーションすることはできません(可能な場合)。 ありがとうWP7カメラにはどのような角度がありますか?

+0

これは、電話機のセンサーに関する素晴らしいブログです。私はあなたがカメラの領域を見るのではなく、あなたが探しているものを見つけるかもしれないと信じています。 http://developer.nokia.com/community/wiki/Qibla_Compass_for_Windows_Phone –

答えて

3

この記事

WP7でHow to find out the aperture angle of an android camera

を参照してください、それを得るために何のAPI機能、および

  • 超えない他のオプション(彼らが知っていることはありません)、ユーザはそれを紹介依頼
  • ありません
  • サポートしている電話機のリストを作成し、それぞれの電話機を取得/測定します。あなたのアプリにそれを保存します。 (クレイジー!)

(私はものの同じ種類をやっているし、我々は成功せず、自動校正方法を見つけるために多くを投資。)

EDIT

乾杯し、法案への愛マイクロソフトとは

+0

製造元から個別に連絡するか、各電話機を測定する – JonAlb

2

私はカメラの角度を取得する方法はわかりませんが、私はヤウ/ロール/ピッチに基づいて電話の傾きを計算するアプリを持っています。私があれば知らない

private double CalcUpAdj(AccelerometerReading reading) 
{ 
    double angle = PhoneUtilities.Utilities.AccelerometerMath.Yaw(reading); 

    //Get the angleNeeded for calculation 
    double angleNeeded = Math.Abs(angle); 
    double adj = CalcAdj(angleNeeded); 

    tbAngle.Text = String.Format("{0:0.00}", angleNeeded) + (char)176; 
    textBlockAdj.Text = adj.ToString(); 

    return adj; 
} 

private double CalcAdj(double angleNeeded) 
{ 
    double number; 
    if (double.TryParse(tbHyp.Text, out number)) 
    { 
     double hyp = number; 
     double adj = Math.Cos(Math.PI * angleNeeded/180) * hyp; 

     tbAngle.Text = String.Format("{0:0.00}", angleNeeded) + (char)176; 

     textBlockAdj.Text = adj.ToString(); 
     return adj; 
    } 

    return 0; 
} 

namespace PhoneUtilities.Utilities 
{ 
    public class AccelerometerMath 
    { 
     public static double RadianToDegree(double radians) 
     { 

      return radians * (180/Math.PI); 
     } 

     public static double Pitch(AccelerometerReading e) 
     { 
      return RadianToDegree((Math.Atan(e.Acceleration.X/Math.Sqrt(Math.Pow(e.Acceleration.Y, 2) + Math.Pow(e.Acceleration.Z, 2))))); 
     } 

     public static double Roll(AccelerometerReading e) 
     { 
      return RadianToDegree((Math.Atan(e.Acceleration.Y/Math.Sqrt(Math.Pow(e.Acceleration.X, 2) + Math.Pow(e.Acceleration.Z, 2))))); 
     } 

     public static double Yaw(AccelerometerReading e) 
     { 
      return RadianToDegree((Math.Atan(Math.Sqrt(Math.Pow(e.Acceleration.X, 2) + Math.Pow(e.Acceleration.Y, 2))/e.Acceleration.Z))); 
     } 
    } 
} 

計算が私にチルトの角度を得ることができました、ここで私はコス(角度)= ADJ/HYPいくつかの三角計算に使用する例です。これはあなたのカメラであなたを助けますが、私はあなたが電話の傾きに基づいて角度を計算することができる画面の寸法を知っていた場合は想像します。うまくいけば、これは役に立ちます。

+0

私が探していたものに関連していない、面白い、有益な投稿です。 – SBoss

関連する問題