From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/api/canvaspattern/index.html | 108 +++++++++++++ .../web/api/canvaspattern/settransform/index.html | 180 +++++++++++++++++++++ 2 files changed, 288 insertions(+) create mode 100644 files/zh-cn/web/api/canvaspattern/index.html create mode 100644 files/zh-cn/web/api/canvaspattern/settransform/index.html (limited to 'files/zh-cn/web/api/canvaspattern') diff --git a/files/zh-cn/web/api/canvaspattern/index.html b/files/zh-cn/web/api/canvaspattern/index.html new file mode 100644 index 0000000000..0fe68e2fb4 --- /dev/null +++ b/files/zh-cn/web/api/canvaspattern/index.html @@ -0,0 +1,108 @@ +--- +title: CanvasPattern +slug: Web/API/CanvasPattern +translation_of: Web/API/CanvasPattern +--- +
+ {{APIRef("Canvas")}}
+

CanvasPattern 接口表示描述一个模板(基于image, canvas或video)的不透明对象,通过 {{domxref("CanvasRenderingContext2D.createPattern()")}} 方法创建.

+

属性

+

非透明对象,没有暴露出属性

+

方法

+

没有继承来的方法

+
+
+ {{domxref("CanvasPattern.setTransform()")}} {{experimental_inline}}
+
+ 应用 {{domxref("SVGMatrix")}} 对模板做线性变换
+
+

标准

+ + + + + + + + + + + + + + + + + + + + +
标准状态备注
{{SpecName('HTML WHATWG', "the-canvas-element.html#canvaspattern", "CanvasPattern")}}{{Spec2('HTML WHATWG')}}新增 setTransform() 方法
{{SpecName('HTML Canvas 2D Context W3C', '#canvaspattern', 'CanvasPattern')}}{{Spec2('HTML Canvas 2D Context W3C')}}初始定义
+

浏览器兼容性

+
+ {{CompatibilityTable}}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
功能ChromeFirefox (Gecko)Internet ExplorerOperaSafari
基本的支持4.0{{CompatGeckoDesktop("1.9.2")}}9.09.03.1
setTransform(){{experimental_inline}}{{CompatNo}}{{CompatGeckoDesktop("33")}}{{CompatUnknown}}{{CompatNo}}{{CompatUnknown}}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
功能AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
基本的支持2.1{{CompatGeckoMobile("1.9.2")}}{{CompatUnknown}}10.03.2
setTransform(){{experimental_inline}}{{CompatUnknown}}{{CompatGeckoMobile("33")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+

查看相关

+ diff --git a/files/zh-cn/web/api/canvaspattern/settransform/index.html b/files/zh-cn/web/api/canvaspattern/settransform/index.html new file mode 100644 index 0000000000..d53a0bf44b --- /dev/null +++ b/files/zh-cn/web/api/canvaspattern/settransform/index.html @@ -0,0 +1,180 @@ +--- +title: CanvasPattern.setTransform() +slug: Web/API/CanvasPattern/setTransform +translation_of: Web/API/CanvasPattern/setTransform +--- +
{{APIRef("Canvas API")}} {{SeeCompatTable}}
+ +

CanvasPattern.setTransform() 方法使用 {{domxref("SVGMatrix")}} 对象作为图案的变换矩阵,并在此图案上调用它。

+ +

语法

+ +
void pattern.setTransform(matrix);
+
+ +

参数

+ +
+
matrix
+
{{domxref("SVGMatrix")}} ,被用作图案的变换矩阵。
+
+ +

示例

+ +

使用 setTransform 方法

+ +

这是一段简单的代码片段,使用 setTransform 方法创建一个来自 {{domxref("SVGMatrix")}} 具有指定图案变化的{{domxref("CanvasPattern")}} 。如例子所示,如果你把图案赋值给当前的 {{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle")}} ,当你使用 {{domxref("CanvasRenderingContext2D.fillRect", "fillRect()")}} 方法时,图案会被应用到 canvas 上绘制出效果。

+ +

HTML

+ +
<canvas id="canvas"></canvas>
+<svg id="svg1"></svg>
+
+ +

JavaScript

+ +
var canvas = document.getElementById("canvas");
+var ctx = canvas.getContext("2d");
+
+var svg1 = document.getElementById("svg1");
+var matrix = svg1.createSVGMatrix();
+
+var img = new Image();
+img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
+
+img.onload = function() {
+  var pattern = ctx.createPattern(img, 'repeat');
+  pattern.setTransform(matrix.rotate(-45).scale(1.5));
+  ctx.fillStyle = pattern;
+  ctx.fillRect(0,0,400,400);
+};
+
+ +

修改下面的代码并在线查看 canvas 的变化:

+ + + +

{{ EmbedLiveSample('Playable_code', 700, 380) }}

+ +

规范描述

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', "scripting.html#dom-canvaspattern-settransform", "CanvasPattern.setTransform")}}{{Spec2('HTML WHATWG')}} 
+ +

浏览器兼容性

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatUnknown}}{{ CompatGeckoDesktop("33") }}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{ CompatGeckoMobile("33") }}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

参见

+ + -- cgit v1.2.3-54-g00ecf