我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android编程绘制抛物线的方法示例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android编程绘制抛物线的方法示例

本文实例讲述了Android编程绘制抛物线的方法。分享给大家供大家参考,具体如下:

package com.yarin.android.Examples_05_04;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Set;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.widget.Toast;public class GameView extends View implements Runnable{    private Paint mPaint = null;  double maxS = 0;  double maxH = 0;  double maxT = 0;  double dx;  double dy;  double d;  MovingObject obj;  boolean isDraw=false;  public GameView(Context context)  {    super(context);        mPaint = new Paint();    // 计算物体的最大高度、运动时间及最大射程    obj = new MovingObject(30, Math.PI / 4, Color.RED);    // 运行时间    obj.T = 2 * obj.V0 * Math.sin(obj.Sita) / 9.8;    // 最大高度    obj.H = obj.V0 * obj.V0 * Math.sin(obj.Sita) * Math.sin(obj.Sita)        / (2 * 9.8);    // 最大射程    obj.Smax = 2 * obj.V0 * obj.V0 * Math.sin(obj.Sita)        * Math.cos(obj.Sita) / 9.8;    if (obj.Smax > maxS)    {      maxS = obj.Smax;    }    if (obj.H > maxH)    {      maxH = obj.H;    }    if (obj.T > maxT)    {      maxT = obj.T;    }    dx = (800 - 20) / maxS;    dy = (480 - 20) / maxH;    d = Math.min(dx, dy);    //最大运行时间    Log.v("TAG", String.valueOf(maxT));    //最大高度    Log.v("TAG", String.valueOf(maxH));    //最大射程    Log.v("TAG", String.valueOf(maxS));  }  public void onDraw(Canvas canvas)  {    super.onDraw(canvas);        canvas.drawColor(Color.BLACK);        mPaint.setAntiAlias(true);    canvas.drawColor(Color.GREEN);    if(isDraw)    {      canvas.drawCircle((float)obj.X, (float)obj.Y, 10, mPaint);    }  }  // 触笔事件  public boolean onTouchEvent(MotionEvent event)  {    switch (event.getAction())    {    case MotionEvent.ACTION_DOWN:      new Thread(this).start();      break;    }    return true;  }  public void run()  {    for (double t = 0; t < maxT; t += 0.01)    {      Log.v("TAG", String.valueOf(t));      isDraw=true;      // 水平坐标      double x = obj.V0 * Math.cos(obj.Sita) * t;      // 竖直坐标      double y = obj.V0 * Math.sin(obj.Sita) * t - 9.8 * t * t / 2;      if (y < 0)      {        continue;      }      // 坐标转换      obj.X = 10 + d * x;      obj.Y = 480 - 10 - d * y;      try      {        Thread.sleep(10);      } catch (InterruptedException e)      {        Thread.currentThread().interrupt();      }      // 使用postInvalidate可以直接在线程中更新界面      postInvalidate();    }  }}class MovingObject{  // 重力加速度  public final double G = 9.8;  // / <summary>  // / 构造函数  // / </summary>  // / V0物体的初速度  // / Sita物体初速度与水平方向的夹角  // / Color颜色  public MovingObject(double V0, double Sita, int red)  {    this.V0 = V0;    this.Sita = Sita;    this.Color = red;  }  // / <summary>  // / 物体的初速度  // / </summary>  public double V0;  // / <summary>  // / 物体初速度与水平方向的夹角  // / </summary>  public double Sita;  // / <summary>  // / 物体的横坐标  // / </summary>  public double X;  // / <summary>  // / 物体的纵坐标  // / </summary>  public double Y;  // 物体的颜色  public int Color;  // 要绘制的物体的矩形  public Rect GetObjectRectangle()  {    return new Rect((int) X - 3, (int) Y - 3, 6, 6);  }  // / <summary>  // / 最大射程  // / </summary>  public double Smax;  // / <summary>  // / 最大高度  // / </summary>  public double H;  // / <summary>  // / 运行时间  // / </summary>  public double T;}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android编程绘制抛物线的方法示例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android编程绘制抛物线的方法示例

本文实例讲述了Android编程绘制抛物线的方法。分享给大家供大家参考,具体如下:package com.yarin.android.Examples_05_04;import java.util.HashSet;import java.u
2023-05-31

Android编程实现ImageView图片抛物线动画效果的方法

本文实例讲述了Android编程实现ImageView图片抛物线动画效果的方法。分享给大家供大家参考,具体如下: 想实现抛物线动画,必须知道抛物线的方程,这时候数学其作用了,假如有如图的抛物线:按照抛物线的方程特别,知道任何的三点可以确定一
2022-06-06

Android中贝塞尔曲线的绘制方法示例代码

贝塞尔曲线,很多人可能不太了解,什么叫做贝塞尔曲线呢?这里先做一下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋。一般的矢量图形软件常利用贝塞尔曲线来精确画出曲
2022-06-06

Android LineChart绘制折线图的示例详解

这篇文章主要为大家想想介绍了Android RecyclerLineChart实现绘制折线图的相关资料,有需要的朋友可以借鉴参考下,希望能够有所帮助
2023-03-24

Android编程绘制圆形图片的方法

本文实例讲述了Android编程绘制圆形图片的方法。分享给大家供大家参考,具体如下: 效果图如下:第一步:新建RoundView自定义控件继承Viewpackage com.rong.activity; import com.rong.te
2022-06-06

Android编程之绘制文本(FontMetrics)实现方法

本文实例讲述了Android编程之绘制文本(FontMetrics)实现方法。分享给大家供大家参考,具体如下: Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。 它的思路和java.awt.FontMetric
2022-06-06

Android开发XY轴Board的绘制教程示例

这篇文章主要为大家介绍了Android开发XY轴Board的绘制教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-09

android绘制圆形图片的两种方式示例

android绘制圆形图片的两种方式看下效果先下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把bitmap当做一
2022-06-06

Android绘制平移动画的示例代码怎么编写

今天就跟大家聊聊有关Android绘制平移动画的示例代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、具体操作步骤创建ImageView对象创建ObjectAnimato
2023-06-26

Android编程实现播放视频的方法示例

本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易
2023-05-30

Android编程之菜单Menu的创建方法示例

本文实例讲述了Android编程之菜单Menu的创建方法。分享给大家供大家参考,具体如下:在res目录下的menu文件夹下创建一个main.xml文件,内容如下:
2023-05-30

python利用matplotlib库绘制饼图的方法示例

介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。 它的文档相当完备,并且 Gallery页面 中有上百
2022-06-04

Android自定义View实现绘制虚线的方法详解

前言说实话当第一次看到这个需求的时候,第一反应就是Canvas只有drawLine方法,并没有drawDashLine方法啊!这咋整啊,难道要我自己做个遍历不断的drawLine?不到1秒,我就放弃这个想法了,因为太恶心了。方法肯定是有的,
2023-05-31

Android编程实现等比例显示图片的方法

本文实例讲述了Android编程实现等比例显示图片的方法。分享给大家供大家参考,具体如下: 在android中,由于密度的影响,如果想得到图片的宽高是不行的,具体为什么我就大概说一下,具体的请搜索度娘或者古哥吧。 原因是如果你把图片放在dr
2022-06-06

Android编程操作手机通讯录的方法示例

本文实例讲述了Android编程操作手机通讯录的方法。分享给大家供大家参考,具体如下:手机通讯录的操作是经常被用到的,例如添加联系人,删除联系人或者取得联系人信息。类似的操作还有收藏夹的操作,下面就针对通讯录的操作来做个小例子。同样的这次也
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录