中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

怎么在three.js中顯示中文字體-創新互聯

這期內容當中小編將會給大家帶來有關怎么在three.js中顯示中文字體,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創新互聯公司是一家專業提供華亭企業網站建設,專注與成都做網站、成都網站設計、html5、小程序制作等業務。10年已為華亭眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。

1. 生成中文字體


我們都使用過three.js的FontLoader加載typeface.json實現font的使用,但是很多案例都是英文字體,那么如何來生成中文字體呢?現在我們可以通過Facetype.js實現ttf向typeface.json的轉換。 首先我們在網上下載ttf中文字體(或者在電腦的C:\Windows\Fonts直接復制一份中文的ttf字體),然后我們登陸Facetype.js網站,選中準備好的ttf文件,點擊convert即可。得到的json文件就可以使用FontLoader加載了,其實還是挺簡單的,中文ttf一般都比較大,所以在選擇喜歡字體的同時,也要考慮好文件的大小。

2. tween操作文字動畫

之前也說過tween動畫,不過我覺得挺有意思的,我們就拿百家姓來作文字素材。

怎么在three.js中顯示中文字體

怎么在three.js中顯示中文字體

怎么在three.js中顯示中文字體

效果就是這樣的,我們讓tween實現從圖一到圖二到圖三再到圖一的動畫,每個漢字除了位置的變化還有朝向(lookAt)的變化。這里的lookAt方法就是設置物體的朝向。好了開始上代碼。

1.設置點的位置和朝向

圖一中點的位置可以在平面幾何體中取點

let vertices1 = new THREE.PlaneGeometry(1400, 900, 13, 6).vertices;

他們的朝向相對于每個字來說都是Vector3(0, 0, 1),所以可以設置為

d.position.clone().add(Vector3(0, 0, 1)) //這里的d.position就是每個點的位置

圖二中點的位置可以在球體中獲取

let vertices2 = new THREE.SphereGeometry(500, 12, 9).vertices;

他們的朝向很容易找,就是朝向中心點就可以Vector3(0, 0, 0) 圖三中的點可以通過計算得到,就是一組旋轉上升的點

for(let i=0; i<98; i++) {
 let x = Math.sin(Math.PI / 12 * i) * 400;
 let y = (49 - i) * 8;
 let z = Math.cos(Math.PI / 12 * i) * 400;
 positions3.push(new THREE.Vector3(x,y,z));
}

他們的朝向可以設置為

new THREE.Vector3(0, d.position.y, 0) //d.position.y就是點的y坐標

這樣就設置好了點,接下來就制作動畫

2.tween動畫

首先初始化三個動畫

initTween() {
 var pos = { time: 0 };
 tween1 = new TWEEN.Tween(pos).to({ time: 1 }, 1000);
 tween2 = new TWEEN.Tween(pos).to({ time: 2 }, 1000);
 tween3 = new TWEEN.Tween(pos).to({ time: 0 }, 1000);
 tween1.easing(TWEEN.Easing.Linear.None);
 tween2.easing(TWEEN.Easing.Linear.None);
 tween3.easing(TWEEN.Easing.Linear.None);
 tween1.onUpdate(onUpdate);
 tween2.onUpdate(onUpdate);
 tween3.onUpdate(onUpdate);
}

這里的easing是動畫的緩動效果里面有很多種,不妨打印出來看一下

怎么在three.js中顯示中文字體

然后就是onUpdate方法

function onUpdate() {
 let time = this._object.time; //動畫時刻值
 if(flag == 0) {//這里有三段動畫flag判斷是那一段動畫
 group.children.forEach((d, i) => {//group里面包含著所有文字網格
  d.position.copy(positions3[i].clone().multiplyScalar(time / 2).add(positions1[i].clone().multiplyScalar(1 - time / 2)));
  d.lookAt((new THREE.Vector3(0, d.position.y, 0).multiplyScalar(time / 2)).add(d.position.clone().add(lookAt1).multiplyScalar(1 - time / 2)));
 })
 } else if(flag == 1) {
 group.children.forEach((d, i) => {
  d.position.copy(positions1[i].clone().multiplyScalar(1 - time).add(positions2[i].clone().multiplyScalar(time)));
  d.lookAt((d.position.clone().add(lookAt1).multiplyScalar(1 - time)).add(lookAt2.multiplyScalar(time)));
 })
 } else if(flag == 2) {
 group.children.forEach((d, i) => {
  d.position.copy(positions2[i].clone().multiplyScalar(2 - time).add(positions3[i].clone().multiplyScalar(time - 1)));
  d.lookAt((lookAt2.multiplyScalar(2 - time)).add(new THREE.Vector3(0, d.position.y, 0).multiplyScalar(time - 1)));
 })
 }
}

最后通過點擊觸發

click() {
 tween1.stop();
 tween2.stop();
 tween3.stop();
 if(flag == 0) {
 tween1.start();
 } else if(flag == 1) {
 tween2.start();
 } else if(flag == 2) {
 tween3.start();
 }
 flag = (flag + 1) % 3;
},

這里注意,由于點擊切換的時候動畫上一個動畫可能沒有完成,所以先調用stop方法,讓動畫先停下來。別忘了在render函數中調用TWEEN.update(),不然動畫是不會執行的。

上述就是小編為大家分享的怎么在three.js中顯示中文字體了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

網站題目:怎么在three.js中顯示中文字體-創新互聯
標題路徑:http://m.2m8n56k.cn/article6/cceiog.html

成都網站建設公司_創新互聯,為您提供電子商務網站維護定制網站云服務器企業建站網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設
主站蜘蛛池模板: 久久精品亚瑟全部免费观看 | 在线看国产 | 国产在线免 | 北岛玲亚洲一区在线观看 | 久久精品国产第一区二区 | 在线视频亚洲欧美 | 国产成人在线播放 | 国产精品爽爽va在线观看无码 | 看一级特黄a大一片 | 成人高清视频在线观看 | 国产精品尹人在线观看免费 | 亚洲视频国产视频 | 农村寡妇特一级毛片 | 国产日韩欧美精品在线 | 玖玖视频精品 | 亚洲码一区二区三区 | 婷婷的久久五月综合先锋影音 | 色婷婷国产精品欧美毛片 | 欧美一级免费观看 | 久久无码av三级 | 很黄很色的免费视频 | 免费一级网站 | 一级a毛片免费观看久久精品 | 成人午夜在线观看国产 | 欧美三级做爰视频 | 免费观看a黄一级视频 | 日韩免费精品一级毛片 | 免费a级毛片无码 | 国产三级在线观看免费 | 欧美一区二区三区gg高清影视 | 欧美黄色免费网站 | 国产成人女人在线视频观看 | 日本经典在线三级视频 | 性色网址| 国产欧美日韩精品a在线观看 | 风流慈禧一级毛片在线播放 | 国产成视频 | 欧美孕妇性xxxⅹ精品hd | 400部大量精品情侣网站 | 国产美女在线精品亚洲二区 | 91成人免费观看网站 |