[英]3D from 2D canvas content
這在純HTML5中可行嗎?
可以肯定,因為3d只是2d投影。 如果需要JavaScript庫,請檢查WebGL和http://threejs.org/ 。
您可以通過繪制平面圖的重復偏移版本來“偽造”二維畫布中的拉伸。
您可以稍微減輕角落的影響。
演示: http : //jsfiddle.net/m1erickson/7wxGS/
示例代碼:
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
ctx.strokeStyle="gray";
draw();
ctx.strokeStyle="black"
for(var i=.5;i<10;i+=.5){
ctx.save();
ctx.translate(-i,-i);
draw();
ctx.restore();
}
function draw(){
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(125,100);
ctx.lineTo(125,125);
ctx.lineTo(145,125);
ctx.lineTo(145,145);
ctx.lineTo(125,145);
ctx.lineTo(125,175);
ctx.lineTo(100,175);
ctx.closePath();
ctx.stroke();
// exterior corners
corner(100,100);
corner(145,145);
corner(125,175);
}
function corner(x,y){
ctx.save();
ctx.beginPath();
ctx.fillStyle="#ddd";
ctx.fillRect(x,y,1,1);
ctx.restore();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.