2011-11-02 15 views
5

WP7 için uygulanan Determine angle of view of smartphone camera ile aynı soru. Uygun bir yöntem bulamıyor gibi görünüyor ve kullanıcılarımı kendileri ayarlayarak (mümkün ise) kullanmak istemiyorum. TeşekkürlerWP7 Fotoğraf Makinesi'nin gördüğü açı nedir?

+0

Bu telefondaki sensörler hakkında da güzel bir blog. Kamera alanına bakmak yerine orada aradığınızı bulacağınıza inanıyorum. http://developer.nokia.com/community/wiki/Qibla_Compass_for_Windows_Phone –

cevap

3

Bu yayını

WP7 içinde How to find out the aperture angle of an android camera

bakınız, o olsun hiçbir API fonksiyonu ve

  • dışında başka seçeneği (bildikleri asla) kullanıcı bunu tanıtmak Sor
  • var
  • Desteklediğiniz telefonların bir listesini yapın ve her biri için alın/ölçün. Bunu uygulamanızda saklayın. (Deli!)

(başarılı olamadı, ben şeyler aynı tür yapıyorum ve biz otomatik kalibrasyon yöntemleri bulma konusunda bir çok yatırım.)

faturası için DÜZENLEME

alkış ve sevgi ve microsoft co.

+0

Tek tek veya her telefonu ölçerek üreticilerinden edinebilirsiniz. – JonAlb

2

Kameranın açısını nasıl bilmiyorum, ancak Yaw/Roll/Pitch temelli telefonun eğimini hesaplayacak bir uygulamam var. Ben eğer bilmiyorum

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))); 
     } 
    } 
} 

hesaplamalar bana eğim açısını elde başardık, burada Cos (açı) = adj/hyp bazı trigonometri hesaplanmasında kullanılacak bir örnektir Bu, kameranızla size yardımcı olacaktır, ancak ekranın boyutlarını biliyor olsaydınız açıyı telefonun eğimine göre hesaplayabileceğinizi düşünürdüm. Umarım bunu faydalı bulursun.

+0

Aradığım şeyle ilgili olmasa da güzel, bilgilendirici gönderi. – SBoss

İlgili konular