W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
假設(shè)你將要畫一個(gè)圓或者畫一條線,而不是一個(gè)線框模型,或者說不是一個(gè)Mesh(網(wǎng)格)。 第一步我們要做的,是設(shè)置好renderer(渲染器)、scene(場(chǎng)景)和camera(相機(jī))-(如果對(duì)這里所提到的東西,還不了解,請(qǐng)閱讀本手冊(cè)第一章“創(chuàng)建一個(gè)場(chǎng)景 - Creating a scene”)。
這是我們將要用到的代碼:
const renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
const camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 500 );
camera.position.set( 0, 0, 100 );
camera.lookAt( 0, 0, 0 );
const scene = new THREE.Scene();
接下來我們要做的事情是定義一個(gè)材質(zhì)。對(duì)于線條來說,我們能使用的材質(zhì)只有LineBasicMaterial 或者 LineDashedMaterial。
//create a blue LineBasicMaterial
const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );
定義好材質(zhì)之后,我們需要一個(gè)帶有一些頂點(diǎn)的geometry(幾何體)。
const points = [];
points.push( new THREE.Vector3( - 10, 0, 0 ) );
points.push( new THREE.Vector3( 0, 10, 0 ) );
points.push( new THREE.Vector3( 10, 0, 0 ) );
const geometry = new THREE.BufferGeometry().setFromPoints( points );
注意,線是畫在每一對(duì)連續(xù)的頂點(diǎn)之間的,而不是在第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)之間繪制線條(線條并未閉合)。
既然我們已經(jīng)有了能夠畫兩條線的點(diǎn)和一個(gè)材質(zhì),那我們現(xiàn)在就可以將他們組合在一起,形成一條線。
const line = new THREE.Line( geometry, material );
剩下的事情就是把它添加到場(chǎng)景中,并調(diào)用render(渲染)函數(shù)。
scene.add( line );
renderer.render( scene, camera );
你現(xiàn)在應(yīng)當(dāng)已經(jīng)看到了一個(gè)由兩條藍(lán)線組成的、指向上的箭頭。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: