Автор: меньше сахара
Введение
Canvas — новый для HTML5 элемент HTML, в котором изображения можно рисовать с помощью скрипта (обычно JavaScript). Его можно использовать для создания фотоколлекций или простых (и не очень) анимаций, или даже обработки и рендеринга видео в реальном времени. Холст — это область рисования, определяемая HTML-кодом со свойствами высоты и ширины. Код JavaScript может получить доступ к этой области, подобно другим универсальным 2D API, через полный набор функций рисования для динамического создания графики. Программы Mozilla поддерживают Canvas, начиная с Gecko 1.8 (Firefox 1.5), и Internet Explorer, начиная с IE9. Также поддерживаются Chrome и Opera 9+.
исторические источники
Apple внутри компании использует собственный запуск MacOS X WebKit для приложений, использующих такие виджеты, как Dashboard и браузер Safari. Позже было предложено использовать этот элемент для следующего поколения веб-технологий через браузеры с ядром Gecko (особенно Mozilla и Firefox), Opera и Chrome, а также Рабочая группа по технологии гипертекстовых веб-приложений.
Основное использование холста
- Использование тега холста
- метод холста для проверки возможности поддержки
- холст рисует графика
Система координат
прямоугольник
fillRect( x , y , width , height) //填充以(x,y)为起点宽高分别为width、height的矩形 默认为黑色
stokeRect( x , y , width , height) //绘制一个空心以(x,y)为起点宽高分别为width、height的矩形
clearRect( x, y , width , height ) // 清除以(x,y)为起点宽高分别为width、height的矩形 为透明
дорожка
beginPath() 新建一条路径一旦创建成功 绘制命令将转移到新建的路径上
moveTo( x, y ) 移动画笔到(x , y) 点开始后面的绘制工作
closePath() 关闭该路径 将绘制指令重新转移到上下文
stroke() 将绘制的路径进行描边
fill() 将绘制的封闭区域进行填充
дуга
arc( x , y , r , startAngle , endAngle , anticlosewise ) // 以(x,y)为圆心 r为半径的圆 绘制startAngle弧度 到endAngle弧度的圆弧 anticlosewise默认为false 即顺时针方向 true为逆时针方向
arcTo( x1 , y1 , x2 , y2 , radius ) //根据 两个控制点 (x1,y1) 和 (x2, y2)以及半径绘制弧线 同时连接两个控制点
Кривая Безье
Кривая Безье на самом деле является прямой линией
Квадратичная кривая Безье
кубическая кривая Безье
Квадратичная кривая Безье
quadraticCurveTo( cp1x, cp1y , x ,y ) // (cp1x,cp1y) 控制点 (x,y)结束点
кубическая кривая Безье
bezierCurveTo( cp1x, cp1y ,cp2x , cp2y ,x , y )//(cp1x,cp1y)控制点1 (cp2x,cp2y) 控制点2 (x,y)结束点
дополнение стиля
fillStyle = color
strokeStyle = color
//color 可以为颜色值、渐变对象(并非样式!!!!)
lineWidth = value 线宽
lineCap = type (butt 、 round 、square)线条末端样式 依次是方形、圆形&突出、方形&突出
lineJoin = type (round 、bevel 、 miter)线条交汇处样式 依次是圆形、平角 、 三角形
ctx.setLineDash([ 实际长度 , 间隙长度 ]) //虚线 setLineDash接受数组
ctx.lineDashOffet //设置偏移量
Градиент
var gradient = ctx.createLinearGradient( x1 ,y1 ,x2 ,y2); //线性渐变
var gradient = ctx.createRadialGradient(x1 ,y1 ,r1 ,x2 ,y2 ,r2);//径向渐变
gradient.addColorStop( position , color )// position:相对位置0~1 color:该位置下的颜色
прозрачность
ctx.globalAlpha = value (0~1)
текст
fillText( text , x , y , [,maxWidth]) 在(x,y)位置绘制text文本 最大宽度为maxWidth(可选)
strokeText( text ,x ,y ,[,maxWidth]) 在(x,y)位置绘制text文本边框 最大宽度为maxWidth(可选)
font = value eg:"100px sans-serif"
рисовать картинки
drawImage( image , x , y , width , height ) image为图片对象、从(x,y)处放置宽高分别为width height的图片
drawImage( image , sx , sy , swidth , sheight ,dx ,dy ,dwidth ,dheight) 切片前四个是定义图像源的切片位置和大小 后四个是定期切片的目标显示位置大小
сохранение состояния восстановление
save()
restore()
действие
translate( x , y ) 将canvas原点的移动到 (x,y) (save&restore保存初始状态!!!)
rotate( angle ) 顺时针方向旋转坐标轴 angle弧度
scale(x,y) 将图形横向缩放x倍、纵向缩放y倍 ( x、y大于1是放大 小于1为缩放!!!)
глобальная операция композиции
globalCompositeOperation = type; source-over
source-in
source-out
source-atop
destination-over
destination-in
destination-out
destination-atop
xor
copy
обрезать
clip //只显示裁剪区域内部区域 (使用save & restore 存储canvas状态!!!)
анимация
clearRect() 清空画布
save&restore 保存恢复canvas状态
Выполнение по времени
- setInterval()
- setTimeout()
- requestAnimationFrame()
Смотрите разницу для деталей:блог woo woo woo.cn на.com/smallmatch…
svg
Этикетка
- прямоугольник
- круг круг
- овальный эллипс
- линия
- полилиния
- многоугольник
- путь путь
- Текст Текст
Атрибуты
- ширина ширина
- высота
- css-стиль
- Цвет заливки Заливка
- обводка границы цвета
- ширина границы
- Начало границы и конец штриха-linecap
- Стиль линии штрих-dasharray (необходимо заполнить ширину линии и разрыв строки, заполнить цикл в соответствии с порядком)
- Начальное смещение каждого сегмента линии stroke-dashoffet
- заполнить прозрачность
- граница обводки-непрозрачность
- Правило заполнения графика fill-rule (ненулевое даженечетное)
- Преобразование действия (центральная точка находится в верхнем левом углу изображения и поддерживает только 2D-преобразование).
Подробности:у-у-у-у. palms.com/WordPress/2…
- translate(10 ,10 ) or translate(10 10)
- rotate(20) or rotate(20 , x y) x,y — центральная точка вращения и может быть только единицей измерения градусов по умолчанию
- scale(x , y)
- свойство viewBox
Подробности:у-у-у-у. palms.com/WordPress/2…
- viewBox = "x , y , width , height"
- сохранить свойство AspectRatio
Подробности:у-у-у-у. palms.com/WordPress/2…
прямоугольник
- из левого положения х
- у с верхней позиции
- Прямоугольник производит закругленные углы rx
- Прямоугольник создает закругленные углы ry
круг круг
- точка сх су
- радиус г
овальный эллипс
- Координаты центра эллипса cx cy
- Горизонтальный радиус Rx.
- вертикальный радиус ry
прямая линия
- начальная точка x1 y1
- конечная точка x2 y2
многоугольник
- Определите координаты x y каждого угла точек многоугольника (например:points="200,10 250,190 160,210")
Кривая полилиния
- Определите начальную точку полилинии, точку перегиба, ключевые точки (например: points="0,40 40,40 40,80 80,80 80,120 120,120 120,160" )
путь путь
- M = moveto перемещает кисть
- L = линияпроводить линию
- H = от горизонтальной линии до горизонтальной линии
- V = от вертикальной линии до вертикальной линии
- C = кривая к кривой
- S = плавная криваядо плавной кривой
- Q = квадратичная кривая Безье
- T = гладкая квадратичная кривая Безье — гладкая кривая Безье
- A = эллиптическая дуга
- Z = конечный путь близкого пути
Примечание. Заглавные буквы в приведенной выше команде указывают на абсолютное позиционирование, а строчные — на относительное.
- Слово
<svg><text x="10" y="20" fill="red" transform="rotate(30,20,40)"></text></svg>
Использование других гиперссылок, tspan textPath и других тегов более подробно не объясняется.
Здесь вы обнаружите, что есть много тегов svg и путь пути трудно вычислить и т. д. Для создания пути рекомендуется использовать редактор svg Здесь мы берем редактор Method Draw в качестве примера.
Используйте URL-адрес учебника:blog.CSDN.net/пожалуйста 1056843325…
Веб-сайт онлайн-инструмента на английском языке:editor.method.ac/
Китайский интернет-сайт:Из .run oh oh by .com/more/SV повсюду…
производительность холста и svg
Ссылки по теме:
- blog.CSDN.net/U012468376/…
- Woohoo. Я 3 от prussian.com/canvas/grad…
- уууууууууууууууууууууууууууууууууууууууууууууууууууууууууу.com/SVG/SVG-totem…
Оригинальная ссылка:Фирменные блюда Овощи сливы Талант/деталь/69,Вы также можете найти апплет "Техническая группа по продуктам Meicai" в WeChat. Он полон галантерейных товаров и обновляется каждую неделю. Если вы хотите изучить технологии, не пропустите его.