<body>
<!-- scale -->
<div class="wrapper">
<h2>scale(1.5, 0.5)</h2>
<div class="box">
<h3>prepend translate分も拡大縮小される</h3>
<canvas id="canv-scale-pre" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
<div class="box">
<h3>append</h3>
<canvas id="canv-scale-ape" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
</div>
<!-- translate -->
<div class="wrapper">
<h2>translate(10, 10)</h2>
<div class="box">
<h3>prepend</h3>
<canvas id="canv-trans-pre" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
<div class="box">
<h3>append</h3>
<canvas id="canv-trans-ape" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
</div>
<!-- rotate -->
<div class="wrapper">
<h2>rotate(45)</h2>
<div class="box">
<h3>prepend(stage上の原点が基準になる)</h3>
<canvas id="canv-rotate-pre" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
<div class="box">
<h3>append</h3>
<canvas id="canv-rotate-ape" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
</div>
<!-- skew -->
<div class="wrapper">
<h2>skew(30, 0)</h2>
<div class="box">
<h3>prepend(stage上の原点が基準になる)</h3>
<canvas id="canv-skew-pre" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
<div class="box">
<h3>append</h3>
<canvas id="canv-skew-ape" width="150" height="150">Canvas対応ブラウザを使って下さい。</canvas>
</div>
</div>
<script src="https://code.createjs.com/easeljs-0.8.1.min.js"></script>
<script src="https://code.createjs.com/preloadjs-0.6.1.min.js"></script>
<script src="https://code.createjs.com/tweenjs-0.6.1.min.js"></script>
</body>
.wrapper {
width: 90%;
margin-right: auto;
margin-left: auto;
}
.box{
display: inline-block;
text-align: center;
width: 40%;
}
canvas {
border: 1px solid #333;
}
.red{
color: hsl(0, 80%, 70%);
}
.blue{
color: hsl(240, 80%, 70%);
}
window.onload = function(){
var rect_w = 50;
var rect_h = 50;
// scale
{
(function(){
initialize('canv-scale-pre');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.prependMatrix(new createjs.Matrix2D().scale(1.5, 0.5))
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
(function(){
initialize('canv-scale-ape');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.scale(1.5, 0.5)
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
}
// translate
{
(function(){
initialize('canv-trans-pre');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.prependMatrix(new createjs.Matrix2D().translate(10, 10))
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
(function(){
initialize('canv-trans-ape');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.translate(10, 10)
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
}
// rotate
{
(function(){
initialize('canv-rotate-pre');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.prependMatrix(new createjs.Matrix2D().rotate(45))
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
(function(){
initialize('canv-rotate-ape');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.rotate(45)
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
}
// skew
{
(function(){
initialize('canv-skew-pre');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.prependMatrix(new createjs.Matrix2D().skew(30, 0))
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
(function(){
initialize('canv-skew-ape');
function initialize(canvas_id) {
var canvas = document.getElementById(canvas_id);
var canvas_w = canvas.width;
var canvas_h = canvas.height;
var stage1 = new createjs.Stage(canvas);
var g_rect = getGraphicsRect(1, '#333', 'hsl(0, 80%, 80%)', -rect_w/2, -rect_h/2, rect_w, rect_h);
var rect = new createjs.Shape(g_rect);
rect.x = canvas_w/2;
rect.y = canvas_h/2;
stage1.addChild(rect);
var rect_trans = rect.clone();
var g = rect.graphics.clone();
g.beginFill('hsl(240, 80%, 80%)')
.drawRect(-rect_w/2, -rect_h/2, rect_w, rect_h);
rect_trans.graphics = g;
rect_trans.x = canvas_w/2;
rect_trans.y = canvas_h/2;
var matrix = rect_trans.getMatrix();
matrix
.skew(30, 0)
.decompose(rect_trans);
stage1.addChild(rect_trans);
stage1.update();
}
})();
}
function getGraphicsRect(strokeStyle=1, stroke_color='#333', fill_color,
x, y, width, height){
var g_rect = new createjs.Graphics()
.setStrokeStyle(strokeStyle)
.beginStroke(stroke_color)
.beginFill(fill_color)
.drawRect(x, y, width, height);
return g_rect;
}
};
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.