canvas和svg

摘要:
始终清晰的位图意味着当它被放大原始图像的倍数时,会出现马赛克。如果不清楚,就会变得模糊。这是唯一的区别

canvas 画布   位图

  1.   不要在style中给canvas设置宽高  会有位移差

  2. 给c设置一个绘图环境 得到的是一个对象

    var c=document.getElementById("c1")

    var can=c.getContentext("2d");

  3. fillRect()   绘制一个填充的方块 默认颜色是是黑色

  4. strokeRect() 绘制带边框的方块

绘制线条

  moveTo()绘制线段的起点

  lineTo()绘制线段的领点

  每个线条只能有一个moveTo可以有多个lineTo

  stroke()绘制线段

  beginPath()

  cosePath()  二者同时出现  将绘制路径闭合

  (起始点 结尾点首尾相连)

  Rect() 绘制方块

  clearRect(0,0,width,height)清除画布

  can.save()

  can.restore()  二者成对出现         中间的属性样式只能影响内部   不影响外部

画圆

  can.arc(200,200,50,0,Math.PI,true)

  can.stroke()

  200,200是圆心坐标

  50是半径

  0是起始弧度  Marh.PI是结束弧度

  true       是逆时针方向

  注意    角度有正负之分     顺时针的角度是正的   逆时针转的角度是负的

  

  画布的平移和旋转

  平移transfate画布大小位置不变  起始坐标  变了

  can.tanslate(100,100)

  can.fillRect(-100,-100,50,50);

  

  相当于坐标平移

  Rotate()

  画布的旋转都是以00起始点为中心点旋转

  Scale(0.5,0.5)

  画布的缩放  就是将画布向后移动,跟人的视距就变远了      近大远小

  画布中插入图片

     canvas和svg第1张

  插入字体

  canvas和svg第2张

  200,200字体的起始点   默认在起始点在字体的左下角

svg     矢量图

  svg绘制矢量图canvas用于绘制位图

  svg使用xml格式绘制图形

  svg要有一个根节点 叫svg标签    就相当于html

  canvas和svg第3张

  svg如果不设置大小  默认占用面积300*150

  定义矩形

    Rect标签  属性有 width height x y rx ry fill stroke-width stroke style

    style="fill-opacity:0.2; stroke-opacity:0.5; opacity:0.5"

    fill-opacity和opacity的区别 fill-opacity只改变填冲颜色的透明度     opacity改变fill和stroke

的透明度都改变

  定义圆 

    circle cx cy     定义圆的圆心坐标        r定义半径

  定义椭圆

    ellipse cx cy    定义圆心坐标      rx定义x轴半径     ry定义y轴坐标

  定义直线

    line     x1 y1  定义起始点坐标   x2   y2  定义结束坐标     必须结合stroke绘制

  定义多边形

    polygon    points=""    写多边角的坐标    fill-rule=""    

  定义折线

    polyline     points="" 折点的坐标

  定义的路径

    Path d="M"

    M是起点坐标 L是相邻点坐标  Z让路径构成闭合回路

    H代表水平的线条  默认y轴上的值一样

    V代表垂直的线条  默认x轴上的值一样

    A后面跟七个值

  canvas和svg第4张

      canvas和svg第5张

transform 转换svg中的一个属性 translate  rotate   scale

 平移  旋转       都是以起点 0 0(svg左上角)点位参考  而css3 中以元素的中心点为参考点

  G  用于将相关元素进行组合

  canvas和svg第6张

  G身上的属性  子元素都会继承  但是g上的属性都必须是显现属性    不是svg元素私有的

比如g上的圆心坐标不行

  text用于定义文本x y xy的值在字体的左下角

    canvas和svg第7张

  text-anchor="middle"   让字体居中

  image  绘制图片

  canvas和svg第8张

  use用于复制元素 x y

  x y是相对于原始的元素的坐标位置   不是相对svg的0 0点坐标

  animate

    写在需要动画元素的中间

    attributeName   form to dur  repeatCount="indefinite"(无限次)

 canvas和svg的不同

  矢量图就是说 放大多少倍 都不会出现马赛克 。 永远都是清晰的

位图就是说 放大比原图尺寸的倍数后 就会出现马赛克, 不清晰了, 看着就模糊了。

这就是唯一的差别

免责声明:文章转载自《canvas和svg》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DNS协议以及报文格式总结vscode开发vue项目使用eslint+prettier格式化:保存时自动执行lint进行修复(升级篇,保存时可格式化模板和css)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

图片在 canvas 中的 选中/平移/缩放/旋转,包含了所有canvas的2D变化,让你认识到数学的重要性

1、介绍   canvas 已经出来好久了,相信大家多少都有接触。   如果你是前端页面开发/移动开发,那么你肯定会有做过图片上传处理,图片优化,以及图片合成,这些都是可以用 canvas 实现的。   如果你是做前端游戏开发的,可能会非常熟悉,或者说对几何和各种图形变化非常了解。   这里我介绍的是简单的、基本的,但是非常完全的一个 2d 的 canva...

svg标签元素定位最有效的办法

随着前端技术发展,svg(可伸缩矢量图形 )在前端应用中广泛被使用,然而采用传统的xpath元素定位方法已经无法对其进行定位,我们需要将svg标签及其包含的子标签用以下方式表达: *[name()="svg"]/*[name()="子标签名称"][@属性=""]例如://div/span[text()="自动化测试"]/../../..//span[1]/...

SVG的几个标签元素

defssvg允许我们定义以后需要重复使用的图形元素。建议把所有需要再次使用的元素定义在defs元素里面。这样做可以增加svg内容的易读性和可访问性。在defs元素定义的元素不会直接呈现。你可以在你的视口的任意地方利用<use>元素呈现这些元素。 用法: 类别: 容器元素,结构元素 允许的内容物:任意数量、任意排序的下列元素:动画元素、描述性元...

【canvas学习笔记四】绘制文字

本节我们来学习如何绘制文字。 绘制文字有两个主要的方法: fillText(text, x, y [, maxWidth]) 在x, y位置填充文字text,有一个可选参数maxWidth设置最大绘制宽度。 strokeText(text, x, y [, maxWidth]) 在x, y位置给文字text描边,有一个可选参数maxWidth设置最大绘制宽...

来看看机智的前端童鞋怎么防盗

很多开发的童鞋都是只身混江湖、夜宿城中村,如果居住的地方安保欠缺,那么出门在外难免担心屋里的财产安全。 事实上世面上有很多高大上的防盗设备,但对于机智的前端童鞋来说,只要有一台附带摄像头的电脑,就可以简单地实现一个防盗监控系统~ 纯 JS 的“防盗”能力很大程度借助于 H5 canvas 的力量,且非常有意思。如果你对 canvas 还不熟悉,可以先点这里...

用node生成svg图片

最近有个需求需要后台调统计数据,直接生成图片吐到前端,本来以为比较简单的,结果中间还是遇到了很多问题: 环境: windows:python 2.6+,visual stdio 2008 express开发包 linux:gcc,python 2.6+ node版本:v0.10.35 node组件:express@3.18.6jsdom@3.1.2rsvg...