three.js从入门到精通系列教程015 - three.js使用TextGeometry绘制变形三维文字
·
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>three.js从入门到精通系列教程015 - three.js使用TextGeometry绘制变形三维文字</title>
<script src="ThreeJS/three.js"></script>
<script src="ThreeJS/jquery.js"></script>
</head>
<body>
<center id="myContainer"></center>
<script type="text/javascript">
//创建渲染器
var myRenderer = new THREE.WebGLRenderer({ antialias: true });
myRenderer.setSize(window.innerWidth, window.innerHeight);
$("#myContainer").append(myRenderer.domElement);
var myScene = new THREE.Scene();
myScene.background = new THREE.Color('white');
var myCamera = new THREE.PerspectiveCamera(45,
window.innerWidth / window.innerHeight, 0.1, 1000);
myCamera.position.set(0, 40, 700);
myScene.add(myCamera);
//加载字库并绘制字母
var myFontLoader = new THREE.FontLoader();
/*
THREE.TextGeometry(text, parameters)
text是文字字符串;
parameters是以下参数组成的对象:
· size:字号大小,一般为大写字母的高度
· height:文字的厚度
· curveSegments:弧线分段数,使得文字的曲线更加光滑
· font:字体,默认是'helvetiker',需对应引用的字体文件
· weight:值为'normal'或'bold',表示是否加粗
· style:值为'normal'或'italics',表示是否斜体
· bevelEnabled:布尔值,是否使用倒角,意为在边缘处斜切
· bevelThickness:倒角厚度
· bevelSize:倒角宽度
*/
myFontLoader.load('Data/optimer_bold.typeface.json', function (font) {
var myGeometry = new THREE.TextGeometry('hello', { font: font, size: 80 });
//计算当前几何体的范围
myGeometry.computeBoundingBox();
//计算字母(几何体)当前中心的偏移量
var myOffsetX = (myGeometry.boundingBox.max.x
- myGeometry.boundingBox.min.x) / 2;
var myOffsetY = (myGeometry.boundingBox.max.y
- myGeometry.boundingBox.min.y) / 2;
var myMaterial = new THREE.MeshBasicMaterial({ color: 0x0000ff });
var myTextMesh = new THREE.Mesh(myGeometry, myMaterial);
myTextMesh.position.x = myGeometry.boundingBox.min.x - myOffsetX;
myTextMesh.position.y = myGeometry.boundingBox.min.y + myOffsetY;
myScene.add(myTextMesh);
});
//渲染绘制的字母
animate();
function animate() {
requestAnimationFrame(animate);
myCamera.lookAt(new THREE.Vector3(0, 100, 0));
myRenderer.render(myScene, myCamera);
}
</script>
</body>
</html>

更多推荐
所有评论(0)