c#模拟平抛运动动画的方法详解

主要使用Graphics对象的FillElliple绘制一圆形小球,然后分时控制其显示位置即可。
步骤主要如下:
1.新建窗体,然后在代码模式中添加如下函数分别控制x和y轴方向运动速度。


代码如下:

private int runTime=25;//设置平抛运动时间(动画持续时间)
        private double Xs(double t)
        {
            double v0 = 15;
            return v0 * t;
        }
        private double Ys(double t)
        {
            double g = 9.8;
            return 0.5 * g * t * t;
        }

2.下面我将控制运动方法绑定至了主窗体的click事件上,可以换之。代码如下:


代码如下:

private void Form1_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            double t;
            for (t = 0; t < runTime; t += .5)
            {
                System.Threading.Thread.Sleep(10);
                g.Clear(this.BackColor);
                double x = Xs(1.5 * t) + 50;
                double y = Ys(0.3 * t) + 5;
                g.FillEllipse(Brushes.Red, Convert.ToSingle(x), Convert.ToSingle(y), 30, 30);
            }
        }

(0)

相关推荐

  • JS实现匀速运动的代码实例

    效果: 思路: 利用setInerval()计时器,进行运动.然后关键的一点是在最后停止的时候给它一个填充缝隙的判断. 代码: 复制代码 代码如下: <head runat="server">    <title></title>    <style type="text/css">        #div1        {            width: 100px;            height: 10

  • JS运动基础框架实例分析

    本文实例讲述了JS运动基础框架.分享给大家供大家参考.具体分析如下: 这里需要注意: 1. 在开始运动时关闭已有的定时器 2. 把运动和停止隔开 复制代码 代码如下: <!DOCTYPE html>  <html>      <head>          <meta charset="utf-8">          <title></title>          <style type="te

  • javascript动画之圆形运动,环绕鼠标运动作小球

    代码如下: 复制代码 代码如下: <script type="text/javascript"> var ball; var mouseX = 100; var mouseY = 100; var angle = 0; var radius = 50; function run(){ if(ball === undefined){ ball = document.createElement("span"); ball.style.position = &

  • JS多物体 任意值 链式 缓冲运动

    复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" charset="utf-8" /> <meta http-equiv="content-type" content="text/html" /> <title>demo</title> </h

  • js实现运动logo图片效果及运动元素对象sportBox使用方法

    初始化(元素id, 元素移动的方向用123456789分别表示左上.上.右上.左.中.右.左下.下.右下. 撞击位置,9个数字分别表示9个地点,按顺序左上角.上.右上角.左.中.右.左下角.下.右下角,5居中. 运动的logo /**************************************************************** * name:运动的元素对象sportBox * DATA --2012-12-20-- 美工 **********************

  • js运动动画的八个知识点

    今天简单的学了一下js运动动画,记录一下自己的心得体会,分享给大家. 下面是我整理出来的结果. 知识点一:速度动画. 1.首先第一步实现速度运动动画,封装一个函数,用到的知识是setInterval(function(){ 复制代码 代码如下: oDiv.style.left=oDiv.offsetLeft+10+"px"; },30). 对于这里为什么要用到offsetLeft,我特意百度了一下,我得到的有用信息是: a.offsetLeft和left的相同之处都是表示子节点相对于父

  • js运动框架_包括图片的淡入淡出效果

    复制代码 代码如下: <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><font face="Verdana, Geneva, sans-serif"></font>&l

  • JS实现多物体缓冲运动实例代码

    效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: 复制代码 代码如下: <head runat="server">    <title></title>    <style type="text/css">        div        {            width: 100px

  • JS运动框架之分享侧边栏动画实例

    本文实例讲述了JS运动框架之分享侧边栏动画实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html>  <html>      <head>          <meta charset="utf-8">          <title></title>          <style type="text/css">         

  • JS匀速运动演示示例代码

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • 让Silverlight 2.0动画动起来Making Silverlight 2.0 animation Start(不能运动原因)

    问题又来了 Microsoft Expression Blend 2制作的动画 无法动起来 现在大师教 大家怎么让Silverlight.2.0动画动起来 很简单 你制作了动画 但是没有触发点 或者说没有告诉什么时候开始 Microsoft Visual Web Developer 2008 Express Edition或者VS2008 然后打上Silverlight Tools 补丁 这样要方便 当然记事本也可以 打开 代码部分 比如我的就是Page.xaml.cs 比如我要让 我制作的动画

随机推荐