2011-11-02 12 views
5

वही प्रश्न Determine angle of view of smartphone camera, WP7 के लिए आवेदन किया गया। उचित विधि नहीं लग रहा है, और मैं अपने उपयोगकर्ताओं को इसे स्वयं कैलिब्रेट करने के माध्यम से नहीं रखना चाहता (यदि संभव हो)। धन्यवादWP7 कैमरा क्या कोण देखता है?

+0

यह फोन में सेंसर के बारे में भी एक अच्छा ब्लॉग है। मुझे विश्वास है कि आप कैमरे क्षेत्र में देखने के बजाय वहां जो खोज रहे हैं उसे मिल सकता है। http://developer.nokia.com/community/wiki/Qibla_Compass_for_Windows_Phone –

उत्तर

3

कृपया इस पोस्ट

How to find out the aperture angle of an android camera

WP7 में

देखते हैं, वहाँ है कि प्राप्त करने के लिए कोई एपीआई समारोह, और की तुलना में

  • कोई अन्य विकल्प से पूछो उपयोगकर्ता यह परिचय (वे कभी पता नहीं)
  • है
  • आपके द्वारा समर्थित फ़ोनों की एक सूची बनाएं और प्रत्येक के लिए इसे प्राप्त/मापें। इसे अपने ऐप में स्टोर करें। (पागल!)

(मैं सामान का एक ही तरह कर रहा हूँ और हम स्वचालित अंशांकन तरीके खोजने में काफी निवेश किया, सफलता नहीं मिली।)

बिल के लिए संपादित करें

चियर्स और प्यार और माइक्रोसॉफ्ट सह।

+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