zoukankan      html  css  js  c++  java
  • [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)]

    我自己写的第一个 Silverlight 2.0 程序 

     
    [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)] 
               
    程序运行时:小地球将绕着圆形轨迹做圆周运动。 

    xaml】:很简单,一张图片,再使用一个 Ellipse ,无填充颜色即可,记得为图片起名字 [earth] 
    <Canvas Margin="0,0,0,0"> 
      <Ellipse Height="300" Width="300" Canvas.Left="0" Canvas.Top="0" Fill="{x:Null}" 

               Stroke="#FFFFA500" StrokeThickness="3"/> 
      <Image Height="50" Width="50" Canvas.Left="0" Canvas.Top="0" Source="52.png" x:Name="earth"/> 
    </Canvas>
     
    xaml.cs记得引用时间控件的命名空间 
    using System.Windows.Threading; 
    public partial class Page : UserControl 
        { 
            DispatcherTimer timer1 = new DispatcherTimer(); 
            DispatcherTimer timer2 = new DispatcherTimer
    (); 
        //设置 x 坐标轴变化范围(300 为该圆的直径) 
            double x_temp = 0; 
            double x2_temp = 300; 
            //初始加载事件 
            public Page() 
            { 
                InitializeComponent(); 
                //设置时钟频率为 5 毫秒 
                TimeSpan ts = TimeSpan.FromMilliseconds(0.005); 
                timer1.Interval = ts; 
                timer1.Tick += new EventHandler(timer_Tick); 
                timer1.Start(); 
                timer2.Interval = ts; 
                timer2.Tick += new EventHandler(timer2_Tick); 
            } 
            /// <summary> 
            /// 根据圆弧的 x 坐标获取 y 坐标的方法 
            /// </summary> 
            /// <param name="a">圆弧中心点的 x 坐标</param> 
            /// <param name="b">圆弧中心点的 y 坐标</param> 
            /// <param name="c">圆弧的半径</param> 
            /// <param name="d">x 坐标轴的最大范围</param> 
            /// <returns>返回与 x 坐标相关的圆弧 y 坐标</returns>
     
            public double get_y(double a, double b, double c, double d) 
            { 
                double A = a; 
                double B = b; 
                double R = c; 
                double x = d; 
                double y = 0; 
                //分解 (x - a)(x - a) 
                double x_result = (x * x) - (2 * A * x) + (A * A); 
               //变换圆标准方程式 
                for (x = 0; x <= 2 * R;x++ ) 
                { 
                    double j = Math.Sqrt(R * R - x_result); 
                    y = j + B; 
                } 
                return y; 
            } 
            /// <summary> 
            /// timer2 控制事件 
            /// 该事件处控制一个 圆心为 150,150,半径为 150 的圆弧(下半弧) 
            /// </summary>
     
            void timer2_Tick(object sender, EventArgs e) 
            { 
                double y2_temp = this.get_y(150,150,150,x2_temp); 
                earth.SetValue(Canvas.LeftProperty,x2_temp-25); 
                earth.SetValue(Canvas.TopProperty,y2_temp-25); 
                x2_temp--; 
                //当 x 坐标递减到等于 0 时,下半弧完成,重新初始 
                if (x2_temp == 0) 
                { 
                    timer2.Stop(); 
                    timer1.Start(); 
                    x2_temp = 300; 
                } 
            } 
            /// <summary> 
            /// timer1 控制事件 
            /// 该事件处控制一个 圆心为 150,150,半径为 150 的圆弧(上半弧) 
            /// </summary>
     
            void timer_Tick(object sender, EventArgs e) 
            { 
                x_temp = x_temp + 1; 
                double y_temp = this.get_y(150, 150, 150, x_temp); 
                //上半弧的纵坐标等于圆弧的直径减去下半弧的纵坐标 
                double y_really = 300 - y_temp; 
                earth.SetValue(Canvas.LeftProperty, x_temp-25); 
                earth.SetValue(Canvas.TopProperty, y_really-25); 
                //当 x 坐标递增到等于圆弧直径长时,上半弧完成,重新初始 
                if (x_temp == 300) 
                { 
                    timer1.Stop(); 
                    timer2.Start(); 
                    x_temp = 0; 
                } 
            } 
        }
     


  • 相关阅读:
    使用pandas的get_dummies对类目型的特征因子化
    关于RandomForestRegressor,补全null数值
    关于train_test_split和cross_val_score交叉检验
    关于seaborn
    正态分布
    单下划线或双下划线的意义
    MFC中关于运行时类信息及动态创建对象的两个宏的意义(转)
    DPDK
    根据结构体成员地址得到结构体入口地址,内核代码
    多线程频繁写全局变量导致性能降低
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3428027.html
Copyright © 2011-2022 走看看