新的 Windows Phone 7 项目托管平台_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 新的 Windows Phone 7 项目托管平台

新的 Windows Phone 7 项目托管平台

 2011/8/4 8:07:05    www.iteye.com  我要评论(0)
  • 摘要:CodePlex是很多托管WindowsPhone7项目的普通的地方之一,它对于许多开发者来说可以算是权威的,因为它是免费的、能够托管源码、二进制文件、文档、工作项目、讨论,还支持直接插入到VisualStudio中。这就是说,它适用于有不同需求、喜好的开发者。还有一个新的WindowsPhone7项目托管的地方,可能微软领域的开发者没有考虑到或曾听过,但是不久之后就会意识到。谁在负责这个神秘项目?诺基亚!是的,诺基亚。下面来看一个典型的托管项目
  • 标签:Windows 项目

CodePlex是很多托管Windows Phone 7项目的普通的地方之一,它对于许多开发者来说可以算是权威的,因为它是免费的、能够托管源码、二进制文件、文档、工作项目、讨论,还支持直接插入到Visual Studio中。这就是说,它适用于有不同需求、喜好的开发者。
还有一个新的Windows Phone 7项目托管的地方,可能微软领域的开发者没有考虑到或曾听过,但是不久之后就会意识到。

clip_image002

谁在负责这个神秘项目?诺基亚!是的,诺基亚。下面来看一个典型的托管项目。
Bubble Level Silverlight
举个简单的Silverlight例子,使用加速度传感器来计算设备的倾斜度,并以泡泡的位置来显示水平度。

clip_image004

特别值得注意的是wiki页面,在这里你可以看到一个伟大的故事,包括介绍这个项目是如何创建并完成的。

clip_image006

clip_image008

这是一个简单的应用程序,但有时简单正是你所需要的。下面是项目的截图和代码片段。

clip_image010

C#代码

  1. /// <summary>  
  2. /// Updates the position of the bubble in the glass tube.  
  3. /// </summary>  
  4. /// <param name="e">Contains the accelerometer reading value.</param>  
  5. protected void UpdateBubble(AccelerometerReadingEventArgs e)  
  6. {  
  7.      const double RADIANS_TO_DEGREE = 57.2957795;  
  8.      double divider = Math.Sqrt(e.X * e.X + e.Y * e.Y + e.Z * e.Z);  
  9.      // Calculating the angle + using low pass factor 20 %.  
  10.      // Values from all three accelerometers are used to get more precise reading on y-axis.  
  11.      m_Angle += (Math.Acos(e.Y / divider) * RADIANS_TO_DEGREE - 90 - m_Angle) * 0.2;  
  12.      double angle;  
  13.      // Depending on the orientation, invert the accelerometer value  
  14.      if (Orientation == PageOrientation.LandscapeLeft)  
  15.      {  
  16.          angle = -m_Angle + m_CalibrationFactor;  
  17.      }  
  18.      else 
  19.      {  
  20.          angle = m_Angle - m_CalibrationFactor;  
  21.      }  
  22.      const double MAX_ANGLE = 20.0;  
  23.      // Restrict the angle value to the range -20 and 20 degrees.  
  24.      if (angle > MAX_ANGLE)  
  25.      {  
  26.          angle = MAX_ANGLE;  
  27.      }  
  28.      else if (angle < -MAX_ANGLE)  
  29.      {  
  30.          angle = -MAX_ANGLE;  
  31.      }  
  32.      // Set the bubble position.  
  33.      BubbleTransform.X = angle / MAX_ANGLE * (Reflection.Width / 2 - Bubble.Width / 2);  

/// <summary>

/// Updates the position of the bubble in the glass tube.

/// </summary>

/// <param name="e">Contains the accelerometer reading value.</param>

protected void UpdateBubble(AccelerometerReadingEventArgs e)

{

const double RADIANS_TO_DEGREE = 57.2957795;

double divider = Math.Sqrt(e.X * e.X + e.Y * e.Y + e.Z * e.Z);

// Calculating the angle + using low pass factor 20 %.

// Values from all three accelerometers are used to get more precise reading on y-axis.

m_Angle += (Math.Acos(e.Y / divider) * RADIANS_TO_DEGREE - 90 - m_Angle) * 0.2;

double angle;

// Depending on the orientation, invert the accelerometer value

if (Orientation == PageOrientation.LandscapeLeft)

{

angle = -m_Angle + m_CalibrationFactor;

}

else

{

angle = m_Angle - m_CalibrationFactor;

}

const double MAX_ANGLE = 20.0;

// Restrict the angle value to the range -20 and 20 degrees.

if (angle > MAX_ANGLE)

{

angle = MAX_ANGLE;

}

else if (angle < -MAX_ANGLE)

{

angle = -MAX_ANGLE;

}

// Set the bubble position.

BubbleTransform.X = angle / MAX_ANGLE * (Reflection.Width / 2 - Bubble.Width / 2);

}

VIA http://channel9.msdn.com/coding4fun/blog/Theres-a-new-Windows-Phone-7-project-place-in-town

发表评论
用户名: 匿名