Android编程绘制抛物线的方法示例
短信预约 -IT技能 免费直播动态提醒
本文实例讲述了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
2024-04-02
Android编程绘制圆形图片的方法
本文实例讲述了Android编程绘制圆形图片的方法。分享给大家供大家参考,具体如下:
效果图如下:第一步:新建RoundView自定义控件继承Viewpackage com.rong.activity;
import com.rong.te
2022-06-06
2024-04-02
2024-04-02
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
2024-04-02
2024-04-02
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配置环境变量:【右键计算机】--》【属性】-chatgpt的中文全称是什么
chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列C/C++可变参数的使用
可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃Python 3 教程
Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 PythonPython pip包管理
一、前言 在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install 和 pip , 目前官方推荐使用 pip。
编程资源站
- 资料下载
- 历年试题