您身边的网站建设专家
成功案例

【建站服务】包头公众号代运营公司-域名申请

日期: 2022-09-21 04:35:35 浏览数:6


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


包头公众号代运营公司

网站建设.png

    十、合成

    在前面的所有例子中、,我们总是将一个图形画在另一个之上,对于其他更多的情况,仅仅这样是远远不够的。比如,对合成的图形来说,绘制顺序会有限制。不过,我们可以利用 globalCompositeOperation 属性来改变这种状况。

    globalCompositeOperation = type
    var ctx;function draw(){    var canvas = document.getElementById('tutorial1');    if (!canvas.getContext) return;    var ctx = canvas.getContext("2d");    ctx.fillStyle = "blue";    ctx.fillRect(0, 0, 200, 200);    ctx.globalCompositeOperation = "source-over"; //全局合成操作    ctx.fillStyle = "red";    ctx.fillRect(100, 100, 200, 200);}draw();

    :下面的展示中,蓝色是原有的,红色是新的。

    type 是下面 13 种字符串值之一:

    1、这是默认设置,新图像会覆盖在原有图像。


var ctx;

function draw(){

    var canvas = document.getElementById('tutorial1');

    if (!canvas.getContext) return;

    var ctx = canvas.getContext("2d");

 

    ctx.beginPath();

    ctx.arc(20,20, 100, 0, Math.PI * 2);

    ctx.clip();

 

    ctx.fillStyle = "pink";

    ctx.fillRect(20, 20, 100,100);

}

draw();

十二、动画

动画的基本步骤

清空 canvas 再绘制每一帧动画之前,需要清空所有。清空所有最简单的做法就是 clearRect() 方法。


保存 canvas 状态 如果在绘制的过程中会更改 canvas 的状态(颜色、移动了坐标原点等),又在绘制每一帧时都是原始状态的话,则最好保存下 canvas 的状态


绘制动画图形这一步才是真正的绘制动画帧


恢复 canvas 状态如果你前面保存了 canvas 状态,则应该在绘制完成一帧之后恢复 canvas 状态。


控制动画

我们可用通过 canvas 的方法或者自定义的方法把图像会知道到 canvas 上。正常情况,我们能看到绘制的结果是在脚本执行结束之后。例如,我们不可能在一个 for 循环内部完成动画。


也就是,为了执行动画,我们需要一些可以定时执行重绘的方法。


一般用到下面三个方法:


setInterval()

setTimeout()

requestAnimationFrame()

案例1:太阳系

let sun;

let earth;

let moon;

let ctx;

function init(){

    sun = new Image();

    earth = new Image();

    moon = new Image();

    sun.src = "sun.png";

    earth.src = "earth.png";

    moon.src = "moon.png";

 

    let canvas = document.querySelector("#solar");

    ctx = canvas.getContext("2d");

 

    sun.onload = function (){

        draw()

    }

 

}

init();

function draw(){

    ctx.clearRect(0, 0, 300, 300); //清空所有的内容

    /*绘制 太阳*/

    ctx.drawImage(sun, 0, 0, 300, 300);

 

    ctx.save();

    ctx.translate(150, 150);

 

    //绘制earth轨道

    ctx.beginPath();

    ctx.strokeStyle = "rgba(255,255,0,0.5)";

    ctx.arc(0, 0, 100, 0, 2 * Math.PI)

    ctx.stroke()

 

    let time = new Date();

    //绘制地球

    ctx.rotate(2 * Math.PI / 60 * time.getSeconds() + 2 * Math.PI / 60000 * time.getMilliseconds())

    ctx.translate(100, 0);

    ctx.drawImage(earth, -12, -12)

 

    //绘制月球轨道

    ctx.beginPath();

    ctx.strokeStyle = "rgba(255,255,255,.3)";

    ctx.arc(0, 0, 40, 0, 2 * Math.PI);


包头公众号代运营公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站