利用Android的Canvas绘制正弦函数图像
来源:互联网 发布:易企秀制作软件 编辑:程序博客网 时间:2024/04/30 10:28
一时兴起用android原生的基础绘制工具,绘制了一个正弦(余弦)函数图象,不多说,先上图:
MainView.java类
package com.zhaofeng.main;import javax.crypto.SealedObject;import android.app.Activity;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.Point;import android.os.Bundle;import android.os.Handler;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class MainView extends Activity { /** Called when the activity is first created. */private SurfaceView surfaceView;private Paint paint;private SurfaceHolder surfaceHolder;private int scale_x = 20;private int scale_y = 50;private double ox=10;private double oy=240;private double x=0;private double y=0;private double t=0;private boolean flag=true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); surfaceView = (SurfaceView) findViewById(R.id.main_suf); surfaceHolder = surfaceView.getHolder(); paint = new Paint(); surfaceHolder.addCallback(new Callback() {@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubnew Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile (flag) {try {Thread.sleep(10);Canvas canvas=surfaceHolder.lockCanvas();if(canvas!=null){//绘制坐标轴paint.setColor(Color.WHITE);canvas.drawText("O",20,220, paint);paint.setColor(Color.BLUE);canvas.drawLine(10,10,10,480, paint);canvas.drawText("Y",20,30, paint);paint.setColor(Color.GREEN);canvas.drawLine(0,240,320,240, paint);canvas.drawText("X",300,260, paint);//绘制正弦曲线t+=0.1;x=t*scale_x;y=Math.sin(t)*scale_y+240;System.out.println("---------"+Math.round(Math.sin(t)));if (t>0) {paint.setColor(Color.RED);canvas.drawLine(10+(int)ox,(int)oy,10+(int)x,(int)y, paint);System.out.println(x+"s"+y);}ox=x;oy=y;if (t>15) {flag=false;}}surfaceHolder.unlockCanvasAndPost(canvas);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}}); }}
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><SurfaceView android:id="@+id/main_suf" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/hello" /></LinearLayout>
- 利用Android的Canvas绘制正弦函数图像
- 利用Android的Canvas绘制正弦函数图像
- Android的Canvas绘制正弦函数图像
- ActionScript 正弦函数图像绘制
- 利用C语言绘制正弦函数
- Canvas利用圆绘制正余弦函数叠加图像
- 利用HTML5的canvas标签实现灰太狼图像的绘制
- 绘制正弦函数曲线
- 再探win32绘制正弦图像的最优雅方法:DPtoLP
- 已知正弦函数表利用拉格朗日插值法计算正弦函数的近似值
- android中利用Canvas绘制折线图
- 怎样将html5中利用canvas绘制的图像在服务端保存为图片?
- H5 canvas无法绘制图像的原因
- C# 使用.NET性能计数器示例 绘制出正弦函数图像
- windows 下如何使用 Lua 语言绘制正弦函数图像?代码
- HTML5 Canvas 绘制图像
- canvas-绘制图像
- 利用canvas实现折线图的绘制
- Javascript面向对象编程(三):非构造函数的继承
- Java程序优化的一些最佳实践
- 进程,服务,端口
- iOS学习笔记其2-基本运算与程序控制流程
- zoj2674 Strange Limit 欧拉函数的应用
- 利用Android的Canvas绘制正弦函数图像
- JVM中Perm区持续上涨问题
- MFC About Time
- PowerDesigner使用教程 —— 概念数据模型
- 浅谈server端基本的设计模型及部分问题
- 解决eclipse无法启动
- Java 理论与实践: 用弱引用堵住内存泄漏
- 机器分配
- 【好东西一定要转】关于Solaris安全配置的转贴和讨论