canvas-star6-drawMoon.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <canvas id="canvas" style="margin:0 auto;border:1px #ddd solid;">
        The current browser does not support Canvas, can replace the browser a try!
    </canvas>

    <script>
        window.onload = function(){
            var canvas = document.getElementById(‘canvas‘);

            canvas.width = 800;
            canvas.height = 800;

            if(canvas.getContext(‘2d‘)){
                var context = canvas.getContext(‘2d‘);

                // context.arc(400,400,300,0.5*Math.PI,1.5*Math.PI,true);
                // context.moveTo(400,100);
                // context.arcTo(1200,400,400,700,(400-100)*dis(400,100,1200,400)/(1200-400))
                // context.stroke();

                fillMoon(context,2,400,400,300,0)

            }else{
                alert(‘当前游览器不支持Canvas,请更换游览器后再试!‘);
            }
        }

        function dis(x1,y1,x2,y2){
            return Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
        }

        // 优化
        // x,y位置 r半径
        function fillMoon(cxt,d,x,y,R,rot,fillColor){
            cxt.save();
                cxt.translate(x,y);
                cxt.rotate(rot*Math.PI/180);
                cxt.scale(R,R);
                pathMoon(cxt,d);
                cxt.fillStyle = fillColor || "#fb5";
                cxt.fill();
            cxt.restore();
        }

        function pathMoon(cxt,d){
            cxt.beginPath();
                cxt.arc(0,0,1,0.5*Math.PI,1.5*Math.PI,true);
                moveTo(0,-1);
                cxt.arcTo(d,0,0,1,dis(0,-1,d,0)/d);
                // 或者使用贝塞尔二次曲线
                // cxt.quadraticCurveTo(1.2,0,0,1)
            cxt.closePath();
        }

        function dis(x1,y1,x2,y2){
            return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
        }
    </script>
</body>
</html>
时间: 2024-12-29 06:39:13

canvas-star6-drawMoon.html的相关文章

赶紧来许愿:canvas流星雨的背景

赶紧来许愿:canvas流星雨的背景 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>一起来看流星雨</title> <script> var context; var arr = new Array(); var starCount = 800; var rains = new Array(); var rainCount =20

HTML5自学笔记[ 24 ]canvas绘图之星空草地

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 <style> 8 body{ background:#fff;} 9 div{ width:800px; height:600px; margin:0 auto;} 10 canvas{ backg

canvas绘制“海上升明月”

核心内容 1.海浪绘制 海浪的形状有点像正弦函数,可以用canvas提供的三次贝赛尔曲线函数bezierCurveTo(x1,y1,x2,y2,x3,y3) http://www.w3school.com.cn/tags/canvas_beziercurveto.asp 无论是arcTo还是二次贝赛尔曲线quadraticCurveTo,所谓的控制点就是切线的交点.海浪的动态效果通过改变控制点的纵坐标实现的. 2.升月绘制 升月包括两个部分:弯月和升起动画. 升起动画比较简单,改变弯月坐标,横坐

canvas烟花锦集

canvas可以实现不同动画效果,本文主要记录几种不同节日烟花效果实现. 实现一 效果地址 html <canvas id="canvas"></canvas> css body { background: #000; margin: 0; } canvas { cursor: crosshair; display: block; } js // when animating on canvas, it is best to use requestAnimati

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

移动端canvas抗锯齿

未抗锯齿效果图: 加入抗锯齿代码效果: var Game = function(){ var H = document.documentElement.clientHeight || document.body.clientHeight; var W = document.documentElement.clientWidth || document.body.clientWidth; this.canvas = document.getElementById("canvas"); t

Canvas

仿百度贴吧客户端 loading 小球 前言 几天前在简书上看到在一篇文章<Android仿百度贴吧客户端Loading小球>,看了一下作者,他写了两个好玩的 demo,效果图如下: 今天趁着周末有空,用 H5 的 Canvas 仿了一下.这篇文章只实现第一个效果图.这是我实现的效果: 实现原理 实现原理是参考简书的那篇文章,这里不再复述.现在我们来一步一步实现这样的效果. 第零步:画一个圆 源码如下: <!DOCTYPE html> <html> <head&g

canvas设置width, height

在style里面设置canvas的宽高时,会发现画出的图像被拉伸了:在canvas元素中直接设置width和height就会恢复正常:如果在canvas元素里的style里设置width和height会发现又不行了!看了chy龙神 的博客发现了其中玄机.. 首先这是由canvas的构造导致的,canvas是一个画板和一张画纸组成的.当画板和画纸尺寸一致时,不会发生拉伸变形的情况:当画板和画纸尺寸不一致时,就会被拉伸变形. 能正确设置画板和画纸宽高一致的方法,这些方法可以同时设置画板和画纸的宽高:

【铜】第131篇 融合一对一canvas视频录制到备份上(二)简版做成及追加图片过程周四

关键词:一对一canvas视频录制, 简版做成,追加图片过程 一.一对一视频录制 1.1 往备份上布录制-----------------bug处理 现在不知道,网页录制都依赖哪些文件,现在需要一个一个的去除.现在去除差不多了,如下: 经过整理发现,仅仅需要两个文件,就能实现录制.如下: 简版访问地址如下: http://localhost:9001/record-canvas-drawings.html#no-back-button 二.追加图片过程 2.1 学生端追加拍照 <li><

HTML5 Canvas ( 图形的像素操作 ) getImageData, putImageData, ImgData.data

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvas</title> <script type="text/javascript" src="../js/jQuery.js"></script> <style type="text/css">