WEB开发网
开发学院图形图像Flash Silverlight 2 转换和剪辑区域 阅读

Silverlight 2 转换和剪辑区域

 2009-02-09 11:52:17 来源:WEB开发网   
核心提示: 此代码包括在下载内容中,并在图 6 中被引用,Silverlight 2 转换和剪辑区域(6),RotateTo 在其中扮演重要的角色,它由 MouseMove 处理程序调用,RotateTo 会计算以紫色突出显示的三角形的宽度和内角(距离中心最近的角度),宽度可告知 RotateTo 将

此代码包括在下载内容中,并在图 6 中被引用。RotateTo 在其中扮演重要的角色,它由 MouseMove 处理程序调用,可根据鼠标光标的运动情况来增大或减小旋转角度。RotateTo 根据图 7 中所示的几何并通过一些技巧来计算 SkewTransform 和 ScaleTransform 参数。对于给定角度的旋转,RotateTo 会计算以紫色突出显示的三角形的宽度和内角(距离中心最近的角度)。宽度可告知 RotateTo 将 ScaleTransform 的 ScaleX 属性设置为何值,而角度则告知将 SkewTransform 的 AngleY 属性设置为何值。

Silverlight 2 转换和剪辑区域图 6 Page.xaml.cs 中的 RotateTo

private void RotateTo(double angle)
{
  double radians = (angle * Math.PI) / 180;
  double scaleX = Math.Abs(Math.Cos(radians));
  // Update the ScaleTransform
  // Avoid ScaleX == 0 to prevent images from disappearing!
  SpinScaleTransform.ScaleX = Math.Max(0.005, scaleX);
  // Update the SkewTransform
  if (angle != 90 && angle != 270) // Tangent undefined
  {
    double h = Math.Sin(radians) * _aspect;
    double r = Math.Atan(h / scaleX);
    if (angle > 90 && angle < 270)
      r = -r;
    SpinSkewTransform.AngleY = (r * 180) / Math.PI;
  }
}

Silverlight 2 转换和剪辑区域

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Silverlight 转换 剪辑

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接