b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

关于canvas线条的属性

电脑杂谈  发布时间:2019-05-06 06:16:26  来源:网络整理

canvas清除线条_canvas清除线条_canvas 线条

三、物品资料:详解武器,护甲,扩展物品,杂项的装备和物品属性,提供适用性参考。小编猜大家还想知道:演武榜刷积分技巧,qq水浒武将大全 真武将大全表,法师克星项充属性/技能图文详解,战马获得方法大全表,林冲图片鉴赏 qq水浒林冲属性技能图文详解,qq水浒武将搭配专栏,qq水浒媚李立属性技能图文鉴赏,真武松属性技能图片赏析 有图有真相,qq水浒武将排名 最佳肉盾排行,30级武将搭配的两种方案,武将技能表 所有武将技能属性效果,西门庆怎么打视频攻略。等技能冷却.第五十八层boss详解:难度:中等职业:魔道学者 觉醒技能:无怪物类型:boss生命值条数:10条使用武器:法杖使用技能:魔法驱散 替身草人 变异苍蝇拍 电鳗碰撞机特殊属性:基本特殊属性 极高硬直 被攻击时周围漂浮着鬼魂第五十九层boss详解:难度:中等职业:月之女皇 觉醒技能:有怪物类型:boss生命值条数:10条使用武器:魔杖使用技能:契约召唤:弗利特 契约召唤:桑德尔 觉醒技能-契约召唤:卡西利亚斯特殊属性:基本特殊属性 神级硬直 3种灯神召唤通关秘籍:开场召唤出绿色灯神后往死里打。

一、线条的帽子lineCap

取值:butt(默认值),round圆头,square方头

var canvas=document.getElementById("canvas");

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

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

context.lineWidth=40;
context.strokeStyle="#005588";

//三个beginpath()画了3条平行线
context.beginPath();
context.moveTo(100,200);
context.lineTo(700,200);
context.lineCap="butt";
context.stroke();

context.beginPath();
context.moveTo(100,400);
context.lineTo(700,400);
context.lineCap="round";
context.stroke();

context.beginPath();
context.moveTo(100,600);
context.lineTo(700,600);
context.lineCap="square";
context.stroke();

//baseline
context.lineWidth=1;
context.strokeStyle="#27a";
context.moveTo(100,100);
context.lineTo(100,700);
context.moveTo(700,100);
context.lineTo(700,700);
context.stroke();

(图1)(图3)(图2)4.2.2 线段的作图与比较一、填空题.1.如右图,把河道由弯曲改直,根据__________说明这样做能缩短航道.2.画线段ab=50mm,段ab上取一点c,使得5ac=2ab,在ab的延长线上取一点d,使得ab=10bd,那么cd=______mm.3.如右图,ac=cd=de=eb,图中和线段ad长度相等的线段是________.以d为中点的线段是________.二、选择题.4.比较线段a和b的长短,其结果一定是( ).a.a=b b.a>b c.ab或a=b或a

lineCap="square"可以用来段闭合时候完全闭合,但是还是推荐使用clothPath()闭合。

canvas清除线条_canvas清除线条_canvas 线条

var canvas=document.getElementById("canvas");

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

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

context.beginPath();
context.moveTo(100, 350);
context.lineTo(500,350);
context.lineTo(500,200);
context.lineTo(700,400);
context.lineTo(500,600);
context.lineTo(500,450);
context.lineTo(100,450);
context.lineTo(100,350);
// context.closePath(); //推荐

context.lineWidth=10;
context.lineCap="square"; //不推荐
context.fillStyle="yellow";
context.strokeStyle="#058"

context.fill();
context.stroke();

二、画一个五角星,说明线条其它状态属性

圆上的五个角平分360°,每个角72°,90°-72°=18°

小圆上的角平分72°,18°+36°=54°

角度转弧度——弧度=角度*π/180 即(18+i*72)*Math.PI/180

var canvas=document.getElementById("canvas");

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

var context=canvas.getContext("2d");
context.beginPath();
//角度转弧度:除以180*PI
for(var i=0;i<5;i++){
    context.lineTo(Math.cos((18+i*72)/180*Math.PI)*300+400,
        -Math.sin((18+i*72)/180*Math.PI)*300+400);
    context.lineTo(Math.cos((54+i*72)/180*Math.PI)*150+400,
        -Math.sin((54+i*72)/180*Math.PI)*150+400);
}

context.closePath();

context.lineWidth=10;
context.stroke();

封装成函数:

canvas清除线条_canvas清除线条_canvas 线条

window.onload=function(){
    var canvas=document.getElementById("canvas");

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

    var context=canvas.getContext("2d");
    context.lineWidth=10;
    drawStar(context,150,300,400,400)
}        

function drawStar(ctx,r,R,x,y,){
    ctx.beginPath();
    //角度转弧度:除以180*PI
    for(var i=0;i<5;i++){
        ctx.lineTo(Math.cos((18+i*72)/180*Math.PI)*R+x,
            -Math.sin((18+i*72)/180*Math.PI)*R+y);
            ctx.lineTo(Math.cos((54+i*72)/180*Math.PI)*r+x,
            -Math.sin((54+i*72)/180*Math.PI)*r+y);
    }

    ctx.closePath();
    ctx.stroke();
}

分别修改小r=80,200,400得到下面图形

增加一个顺时针旋转的参数:rot

window.onload=function(){
    var canvas=document.getElementById("canvas");

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

    var context=canvas.getContext("2d");
    context.lineWidth=10;
    drawStar(context,150,300,400,400,30);
}        




//rot顺时针旋转的角度
function drawStar(ctx,r,R,x,y,rot){
    ctx.beginPath();
    //角度转弧度:除以180*PI
    for(var i=0;i<5;i++){
        ctx.lineTo(Math.cos((18+i*72-rot)/180*Math.PI)*R+x,
            -Math.sin((18+i*72-rot)/180*Math.PI)*R+y);
            ctx.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*r+x,
            -Math.sin((54+i*72-rot)/180*Math.PI)*r+y);
    }

    ctx.closePath();
    ctx.stroke();
}

旋转30度的效果如下:

三、线条的连接lineJoin和miterLimit

canvas清除线条_canvas清除线条_canvas 线条

1、lineJoin取值

miter(default)永远呈现一个尖角,bevel斜接,round圆角

bevel像彩带折下来的效果。canvas清除线条canvas清除线条

2、miter相关miterLimit的属性

设置小r为30,lineJoin为miter,效果如下:角没有延伸成尖角,而是采取bevel的方式来显示。

context.lineJoin="miter";
drawStar(context,30,300,400,400,30);

canvas清除线条_canvas 线条_canvas清除线条

为什么?

因为context.miterLimit=10默认值是10,

miterlimit只有当lineJoin为miter时才会有效。

miterLimit指的是,当使用miter作为线条和线条相接的方式时,所 产生的内角和外角的距离的最大值 。

默认值是10就代表最大值是10px,一旦超过来10px就会使用bevel的方式显示。

上面把内圆半径r设置为30时,形成的尖角非常尖,内角和外角的距离超过来miterLimit的10,

现在把miterlimit改大点,改成20,效果如下:

context.lineJoin="miter";
 context.miterLimit=20;
 drawStar(context,30,300,400,400,30);

注意:miterLimit并不是从白色尖尖到黑色尖尖的距离,这个距离远远大于20px。

当产生miterLimit时一定是线条有宽度的,有宽度的线条中间的线的尖角与外边尖角直接的距离。

canvas给出一个miterLimit的经验值10。只有在极其特别的情况下,需要表现非常尖锐的角的时候才需要修改miterLimit。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-96623-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...