{
public struct Vector
{
Point _point;
public Vector( double x, double y)
{
_point = new Point(x, y);
}
public double Length
{
get { return (Math.Sqrt(Math.Pow(_point.X, 2.0 ) + Math.Pow(_point.Y, 2.0 ))); }
}
public voID normalize()
{
if (Length == 0 )
throw new system.invalIDOperationException( " Vector Length is zero, can not normalize " );
double l = Length;
_point.X /= l;
_point.Y /= l;
}
public double X
{
get { return _point.X; }
set { _point.X = value; }
}
public double Y
{
get { return _point.Y; }
set { _point.Y = value; }
}
public static Vector operator - (Vector vector1, Vector vector2)
{
return new Vector(vector1.X - vector2.X, vector1.Y - vector2.Y);
}
public static Vector operator - (Vector vector)
{
return new Vector( - vector.X, - vector.Y);
}
public static Vector operator * ( double scalar, Vector vector)
{
return new Vector(vector.X * scalar, vector.Y * scalar);
}
public static Vector operator * (Vector vector, double scalar)
{
return new Vector(vector.X * scalar, vector.Y * scalar);
}
public static double operator * (Vector vector1, Vector vector2)
{
return (vector1.X * vector2.X) + (vector1.Y * vector2.Y);
}
public static Vector operator + (Vector vector1, Vector vector2)
{
return ( new Vector(vector2.X + vector1.X, vector2.Y + vector1.Y));
}
public static Point operator + (Point point,Vector vector)
{
return new Point(point.X + vector.X, point.Y + vector.Y);
}
}
}
另外在Silverlight中也没有提供将几何路径(Path)参数值转化为PathGeometry的相关内置功能,于此我们需要自己实现这样一个 转换工具类(CodePlex中中开源提供),用于实现任意复杂的几何路径的转换,其使用也非常简单,如下代码块: // 构造Path路径参数
string path = " M50,100 C120,361 230.5,276.5 230.5,276.5 L305.98807,182.3422 C305.98807,182.3422 419.5 " ;
path += " ,179.5002 367.5,265.49993 315.5,351.49966 238.50028,399.49924 238.50028,399.49924 L61.500017,420.49911 " ;
// 将路径转化为几何对象
StringtopathGeometryConverter converter = new StringtopathGeometryConverter();
Geometry geo = converter.Convert(path); 通过扩展的 DoubleAnimationUsingPath的使用和使用普通的DoubleAnimation是一样的,这里就不介绍了。本文只是通过一篇英文文章简单翻译过来,详细大家可查看原文(http://www.codeproject.com/KB/silverlight/PathAnimation.aspx)。 推荐资源: MSDN: http://msdn.microsoft.com/en-us/library/cc189038(VS.95).aspx 原文地址: http://www.codeproject.com/KB/silverlight/PathAnimation.aspx 几何路径转换组件: http://stringtopathgeometry.codeplex.com/ 总结
以上是内存溢出为你收集整理的Silverlight & Blend动画设计系列十一:沿路径动画(Animation Along a Path)全部内容,希望文章能够帮你解决Silverlight & Blend动画设计系列十一:沿路径动画(Animation Along a Path)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)