three.js 畫線

2023-02-16 17:23 更新

假設(shè)你將要畫一個圓或者畫一條線,而不是一個線框模型,或者說不是一個Mesh(網(wǎng)格)。 第一步我們要做的,是設(shè)置好renderer(渲染器)、scene(場景)和camera(相機)-(如果對這里所提到的東西,還不了解,請閱讀本手冊第一章“創(chuà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();

接下來我們要做的事情是定義一個材質(zhì)。對于線條來說,我們能使用的材質(zhì)只有LineBasicMaterial 或者 LineDashedMaterial。

//create a blue LineBasicMaterial
const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );

定義好材質(zhì)之后,我們需要一個帶有一些頂點的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 );

注意,線是畫在每一對連續(xù)的頂點之間的,而不是在第一個頂點和最后一個頂點之間繪制線條(線條并未閉合)。

既然我們已經(jīng)有了能夠畫兩條線的點和一個材質(zhì),那我們現(xiàn)在就可以將他們組合在一起,形成一條線。

const line = new THREE.Line( geometry, material );

剩下的事情就是把它添加到場景中,并調(diào)用render(渲染)函數(shù)。

scene.add( line );
renderer.render( scene, camera );

你現(xiàn)在應當已經(jīng)看到了一個由兩條藍線組成的、指向上的箭頭。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號