我使用基于http://mtcc.com/site/jscanvastest.html的https://code.google.com/p/canvg/将一些SVG转换为HTML5画布。我使用lineTo,moveTo和bezierCurveTo来构造THREE.Shape -object的部分输出。
因为y轴的方向在HTML5画布和three.js之间有所不同,我正在寻找一种在y.js中翻转y轴的方法。
以下两种方法对THREE.Shape无效。它们都会翻转表面方向,因此网格在错误的一侧变得可见,从而抵消了翻转的影响。
1)
geom.applyMatrix(new THREE.Matrix4(1,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,0));
2)
mesh.scale.set( 1, -1, 1 );
应生成字母“L”的示例几何
var ctx = new THREE.Shape();
ctx.moveTo(50,10);
ctx.lineTo(50,80);
ctx.lineTo(90,80);
ctx.lineTo(90,60);
ctx.lineTo(69,60);
ctx.lineTo(60,10);
var geom = new THREE.ShapeGeometry( ctx );
var mesh = new THREE.Mesh( geom, new THREE.MeshLambertMaterial( { color: 0x000000 } ) );