38.canvas

css

*{
     margin: 0;
     padding: 0;
     margin-top: 10vh;
}
body{
     text-align: center;
}
canvas{
     margin: 0 auto;
     border: 1px solid #CCCCCC;
     background: #FFA500;

}

js

<script type="text/javascript">
            window.addEventListener(‘load‘,function(){
                var canvas = document.createElement(‘canvas‘)
                document.body.appendChild(canvas)
                canvas.id = ‘myCanvas‘
                canvas.width = 600;
                canvas.height= 600;
                var myCanvas = document.getElementById(‘myCanvas‘)

                //检测浏览器是否支持canvas属性
                if(!myCanvas||!myCanvas.getContext){
                    return
                }
                var ctx = myCanvas.getContext(‘2d‘)

                drawTJ()
                drawRad()
                drawLine()
                function drawArc(){

                    ctx.lineWidth = 2
                    ctx.fillStyle = ‘#008000‘
                    var arc = {
                        x:myCanvas.width/2,
                        y:myCanvas.height/2,
                        r:10
                    }
                    ctx.save()
                    for (var o=0;o<10;o++) {
                        ctx.strokeStyle = ‘#FF3366‘
                        ctx.beginPath()
                        ctx.arc(arc.x,arc.y,arc.r*o,getRad(-45),getRad(45))

                        ctx.stroke()

                        ctx.beginPath()
                        ctx.strokeStyle = ‘blue‘
                        ctx.arc(arc.x,arc.y,arc.r*o,getRad(-135),getRad(135),true)

                        ctx.stroke()

                        ctx.restore()
                    }

                }
                function drawTJ(){
                    ctx.lineWidth = 2
                    ctx.fillStyle = ‘white‘
                    var arc = {
                        x:myCanvas.width/2,
                        y:130,
                        r:100
                    }
                    //画白大圆
                    ctx.save()
                    ctx.strokeStyle = ‘#FF3366‘
                    ctx.beginPath()
                    ctx.arc(arc.x,arc.y,arc.r,getRad(-90),getRad(90))

                    ctx.fill()
                    //画黑大圆
                    ctx.fillStyle = ‘black‘
                    ctx.beginPath()
                    ctx.strokeStyle = ‘blue‘
                    ctx.arc(arc.x,arc.y,arc.r,getRad(-90),getRad(90),true)

                    ctx.fill()

                    //画上面白半圆
                    ctx.fillStyle = ‘white‘
                    ctx.beginPath()
                    ctx.strokeStyle = ‘blue‘
                    ctx.arc(arc.x,arc.y-(arc.r/2),arc.r/2,getRad(-90),getRad(90),true)
                    ctx.fill()

                    //画下面黑半圆
                    ctx.fillStyle = ‘black‘
                    ctx.beginPath()

                    ctx.arc(arc.x,arc.y+(arc.r/2),arc.r/2,getRad(-90),getRad(90))
                    ctx.fill()

                    //上面黑圆点
                    ctx.fillStyle = ‘black‘
                    ctx.beginPath()

                    ctx.arc(arc.x,arc.y-(arc.r/2),13,getRad(0),getRad(360))
                    ctx.fill()
                    //下面黑圆点

                    ctx.fillStyle = ‘white‘
                    ctx.beginPath()

                    ctx.arc(arc.x,arc.y+(arc.r/2),13,getRad(0),getRad(360))
                    ctx.fill()
                    ctx.restore()
                }
                function drawRad(){
                    ctx.fillStyle = ‘#008000‘
                    ctx.strokeStyle = ‘#D94A6A‘
                    ctx.lineWidth = 1
                    var arc = {
                        x:myCanvas.width/2,
                        y:390,
                        r:100
                    }
                    ctx.beginPath()
                    ctx.moveTo(arc.x,arc.y)
                    ctx.arc(arc.x,arc.y,arc.r,getRad(-45),getRad(-135),true)
                    ctx.closePath();
                    ctx.fill()

//                    ctx.fillStyle = ‘#60CB1B‘
//                    ctx.beginPath()
//                    ctx.moveTo(arc.x,arc.y)
//                    ctx.arc(arc.x,arc.y,arc.r,getRad(-45),getRad(45))
//                    ctx.closePath();
//                    ctx.fill()
//
                    ctx.fillStyle = ‘#D94A6A‘
                    ctx.beginPath()
                    ctx.moveTo(arc.x,arc.y)
                    ctx.arc(arc.x,arc.y,arc.r,getRad(45),getRad(135))
                    ctx.closePath();
                    ctx.stroke()

//                    ctx.fillStyle = ‘#ADD8E6‘
//                    ctx.beginPath()
//                    ctx.moveTo(arc.x,arc.y)
//                    ctx.arc(arc.x,arc.y,arc.r,getRad(135),getRad(-135))
//                    ctx.closePath();
//                    ctx.fill()

                }
                function drawLine(){
                    ctx.setLineDash([5])
                    ctx.fillStyle = ‘#008000‘
                    ctx.strokeStyle = ‘blueviolet‘
                    ctx.lineWidth = 1
                    var arc = {
                        x:myCanvas.width/2,
                        y:390,
                        r:100
                    }
                    ctx.beginPath()
                    ctx.moveTo(arc.x+0.5,10)
                    ctx.lineTo(arc.x+0.5,myCanvas.height-10)

                    ctx.stroke()
                    ctx.closePath()

                    ctx.beginPath()
                    ctx.moveTo(arc.x+0.5,10)
                    ctx.lineTo(arc.x+0.5,myCanvas.height-10)

                    ctx.stroke()
                    ctx.closePath()

                    ctx.beginPath()
                    ctx.moveTo(10,myCanvas.height/2+0.5)
                    ctx.lineTo(myCanvas.width-10,myCanvas.height/2+0.5)

                    ctx.stroke()
                    ctx.closePath()

                }
                function getRad(deg){
                    return (Math.PI*deg)/180
                }
                function getDeg(rad){
                    return (180*rad)/Math.PI
                }
            },false)

        </script>
时间: 2024-10-31 11:49:51

38.canvas的相关文章

android 绘图之Canvas,Paint类

Canvas,Paint 1.在android 绘图但中经常要用到Canvas和Paint类,Canvas好比是一张画布,上面已经有你想绘制图画的轮廓了,而Paint就好比是画笔,就要给Canvas进行添色等操作. 这两个类通常都是在onDraw(Canvas canvas)方法中用的. 2.Bitmap:代表一张位图,BitmapDrawable里封装的突变就是一个Bitmao对象 3.Canvas里面有一些例如: drawArc(参数) 绘制弧 drawBitmao(Bitmap bitma

HTML5七巧板canvas绘图(复习)

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <script type="te

Android Canvas的save(),saveLayer()和restore()浅谈

save()  saveLayer()  restore() 1.在自定义控件当中你onMeasure和onLayout的工作做完成以后就该绘制该控件了,有时候需要自己在控件上添加一些修饰来满足需求 复写onDraw(Canvas canvas),其中Canvas就像是一块画布,你自定义控件的样式就是在它上面完成的. Canvas ,Paint等基本概念就不赘述了. 2.下面就直接用demo来解释标题列出的方法先介绍save()和 必须了解的相关知识:http://www.cnblogs.com

烟花效果(Canvas和Proton)

最近看了很多的烟花效果,我自己的感觉就是代码不是很难,只是需要对它的原理好好理解一下.我们都知道一个烟花从发射到炸裂经过的几个阶段,以及这些过程中涉及到了那些东西.那些量会对最后的炸开效果有影响,我们首相应该把这些量考虑好,之后才能上手去写这个程序,我不知道第一个人是怎么写出的但是我看出基本上所有的烟花效果都是那几个量,没什么区别只是有一些具体的值的大小可能不一样.下面我就分享一下我从网上找的一段代码: 这个烟花效果是自动随机产生烟花,不是我们控制的,相对比较简单. 1 <!DOCTYPE ht

【转】Android Canvas的save(),saveLayer()和restore()浅谈

Android Canvas的save(),saveLayer()和restore()浅谈 时间:2014-12-04 19:35:22      阅读:1445      评论:0      收藏:0      [点我收藏+] save()  saveLayer()  restore() 1.在自定义控件当中你onMeasure和onLayout的工作做完成以后就该绘制该控件了,有时候需要自己在控件上添加一些修饰来满足需求 复写onDraw(Canvas canvas),其中Canvas就像是

javascript canvas全部API

1 2 HTMLCanvasElement//canvas elem对象 3 属性 4 height//高 5 width//宽 6 方法 7 getContext()//获取<canvas>相关的可绘制的上下文 8 toBlob()//(ie 不支持)此方法可以将<canvas>画布转换为base64格式的图片数据,我们可以通过设定参数指定转换的图片类型,甚至图片的清晰度 9 toDataURL()//可以将<canvas>画布转换为Blob对象 10 11 12 1

C# /windowForm/WPF/SilverLight里面操作Word帮助类提供给大家

很多的程序都需要用到对word的操作,数据库里面的表需要一书面的形式展示出来,最近在的一个项 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Drawing; using Word = Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.W

Android Xfermode 学习笔记

一.概述 Xfermode全名transfer-mode,其作用是实现两张图叠加时的混合效果. 网上流传的关于Xfermode最出名的图来源于AndroidSDK的samples中,名叫Xfermodes.java,效果如下: [转载请保留本文地址:http://www.cnblogs.com/goagent/p/5326438.html]  二.体验 提炼出Xfermodes.java中的核心代码,自己写了个简单粗暴的demo试试水: 1 public class ImageViewXferm

Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系

1.Surface Surfaceextends Objectimplements Parcelable java.lang.Object    ? Android.view.Surface Class Overview -------------------------------------------------------------------------------- Handle onto a raw buffer that is being managed by the scre