我的個人博客3.x已經更新了,初學three.js的小伙伴可以關注一下哦,我將在我的博客記錄平時的學習心得,並有很多小案例,這些小案例比較基礎,也不會有官網的案例那么難懂,很合適初學者,博客地址郭先生的博客,記得是郭先生的博客哦。
那么本篇郭先生來說一說three.js幾何體都有哪些?在線案例進入原文觀看哦。
1. 了解各種three.js幾何體
下面是three.js幾何體的分類介紹以及構造器的參數(r117版本)
名稱 |
構造器參數 |
---|---|
PlaneGeometry(平面幾何體) | width — 平面沿着X軸的寬度。默認值是1。height — 平面沿着Y軸的高度。默認值是1。widthSegments — (可選)平面的寬度分段數,默認值是1。heightSegments — (可選)平面的高度分段數,默認值是1。 |
CircleGeometry(圓形幾何體) | radius — 圓形的半徑,默認值為1segments — 分段(三角面)的數量,最小值為3,默認值為8。thetaStart — 第一個分段的起始角度,默認為0。(three o’clock position)thetaLength — 圓形扇區的中心角,通常被稱為“θ”(西塔)。默認值是2*Pi,這使其成為一個完整的圓。 |
RingGeometry(環形幾何體) | innerRadius — 內部半徑,默認值為0.5。outerRadius — 外部半徑,默認值為1。thetaSegments — 圓環的分段數。這個值越大,圓環就越圓。最小值為3,默認值為8。phiSegments — 最小值為1,默認值為8。thetaStart — 起始角度,默認值為0。thetaLength — 圓心角,默認值為Math.PI * 2。 |
ShapeGeometry(形狀幾何體) | shapes — 一個單獨的shape,或者一個包含形狀的Array。curveSegments - Integer - 每一個形狀的分段數,默認值為12。 |
BoxGeometry(立方幾何體) | width — X軸上面的寬度,默認值為1。height — Y軸上面的高度,默認值為1。depth — Z軸上面的深度,默認值為1。widthSegments — (可選)寬度的分段數,默認值是1。heightSegments — (可選)寬度的分段數,默認值是1。depthSegments — (可選)寬度的分段數,默認值是1。 |
SphereGeometry(球幾何體) | radius — 球體半徑,默認為1。widthSegments — 水平分段數(沿着經線分段),最小值為3,默認值為8。heightSegments — 垂直分段數(沿着緯線分段),最小值為2,默認值為6。phiStart — 指定水平(經線)起始角度,默認值為0。phiLength — 指定水平(經線)掃描角度的大小,默認值為 Math.PI * 2。thetaStart — 指定垂直(緯線)起始角度,默認值為0。thetaLength — 指定垂直(緯線)掃描角度大小,默認值為 Math.PI。 |
CylinderGeometry(圓柱幾何體) | radiusTop — 圓柱的頂部半徑,默認值是1。radiusBottom — 圓柱的底部半徑,默認值是1。height — 圓柱的高度,默認值是1。radialSegments — 圓柱側面周圍的分段數,默認為8。heightSegments — 圓柱側面沿着其高度的分段數,默認值為1。openEnded — 一個Boolean值,指明該圓錐的底面是開放的還是封頂的。默認值為false,即其底面默認是封頂的。thetaStart — 第一個分段的起始角度,默認為0。(three o’clock position)thetaLength — 圓柱底面圓扇區的中心角,通常被稱為“θ”(西塔)。默認值是2*Pi,這使其成為一個完整的圓柱。 |
ConeGeometry(圓錐幾何體) | radius — 圓錐底部的半徑,默認值為1。height — 圓錐的高度,默認值為1。radialSegments — 圓錐側面周圍的分段數,默認為8。heightSegments — 圓錐側面沿着其高度的分段數,默認值為1。openEnded — 一個Boolean值,指明該圓錐的底面是開放的還是封頂的。默認值為false,即其底面默認是封頂的。hetaStart — 第一個分段的起始角度,默認為0。(three o’clock position)thetaLength — 圓錐底面圓扇區的中心角,通常被稱為“θ”(西塔)。默認值是2*Pi,這使其成為一個完整的圓錐。 |
TorusGeometry(圓環幾何體) | radius - 圓環的半徑,從圓環的中心到管道(橫截面)的中心。默認值是1。tube — 管道的半徑,默認值為0.4。radialSegments — 圓環的分段數,默認值為8。tubularSegments — 管道的分段數,默認值為6。arc — 圓環的中心角(單位是弧度),默認值為Math.PI * 2。 |
TextGeometry(文本幾何體) | font — THREE.Font的實例。size — Float。字體大小,默認值為100。height — Float。擠出文本的厚度。默認值為50。curveSegments — Integer。(表示文本的)曲線上點的數量。默認值為12。bevelEnabled — Boolean。是否開啟斜角,默認為false。bevelThickness — Float。文本上斜角的深度,默認值為20。bevelSize — Float。斜角與原始文本輪廓之間的延伸距離。默認值為8。bevelSegments — Integer。斜角的分段數。默認值為3。 |
TetrahedronGeometry(四面幾何體) | radius — 四面體的半徑,默認值為1。detail — 默認值為0。將這個值設為一個大於0的數將會為它增加一些頂點,使其不再是一個四面體。 |
OctahedronGeometry(八面幾何體) | radius — 八面體的半徑,默認值為1。detail — 默認值為0,將這個值設為一個大於0的數將會為它增加一些頂點,使其不再是一個八面體。 |
DodecahedronGeometry(十二面幾何體) | radius — 十二面體的半徑,默認值為1。detail — 默認值為0。將這個值設為一個大於0的數將會為它增加一些頂點,使其不再是一個十二面體。 |
IcosahedronGeometry(二十面幾何體) | radius — 二十面體的半徑,默認為1。detail — 默認值為0。將這個值設為一個大於0的數將會為它增加一些頂點,使其不再是一個二十面體。當這個值大於1的時候,實際上它將變成一個球體。 |
TorusKnotGeometry(圓環扭結幾何體) | radius - 圓環的半徑,默認值為1。tube — 管道的半徑,默認值為0.4。tubularSegments — 管道的分段數量,默認值為64。radialSegments — 橫截面分段數量,默認值為8。p — 這個值決定了幾何體將繞着其旋轉對稱軸旋轉多少次,默認值是2。q — 這個值決定了幾何體將繞着其內部圓環旋轉多少次,默認值是3。 |
PolyhedronGeometry(多面幾何體) | vertices — 一個頂點Array(數組):[1,1,1, -1,-1,-1, … ]。indices — 一個構成面的索引Array(數組), [0,1,2, 2,3,0, … ]。radius — Float - 最終形狀的半徑。detail — Integer - 將對這個幾何體細分多少個級別。細節越多,形狀就越平滑。 |
TubeGeometry(管道幾何體) | path — Curve - 一個由基類Curve繼承而來的路徑。tubularSegments — Integer - 組成這一管道的分段數,默認值為64。radius — Float - 管道的半徑,默認值為1。radialSegments — Integer - 管道橫截面的分段數目,默認值為8。closed — Boolean 管道的兩端是否閉合,默認值為false。 |
ExtrudeGeometry(擠壓幾何體) | curveSegments — int,曲線上點的數量,默認值是12。steps — int,用於沿着擠出樣條的深度細分的點的數量,默認值為1。depth — float,擠出的形狀的深度,默認值為100。bevelEnabled — bool,對擠出的形狀應用是否斜角,默認值為true。bevelThickness — float,設置原始形狀上斜角的厚度。默認值為6。bevelSize — float。斜角與原始形狀輪廓之間的延伸距離,默認值為bevelThickness-2。bevelSegments — int。斜角的分段層數,默認值為3。extrudePath — THREE.CurvePath對象。一條沿着被擠出形狀的三維樣條線。UVGenerator — Object。提供了UV生成器函數的對象。 |
LatheGeometry(車削幾何體) | points — 一個Vector2對象數組。每個點的X坐標必須大於0。segments — 要生成的車削幾何體圓周分段的數量,默認值是12。phiStart — 以弧度表示的起始角度,默認值為0。phiLength — 車削部分的弧度(0-2PI)范圍,2PI將是一個完全閉合的、完整的車削幾何體,小於2PI是部分車削。默認值是2PI。 |
ParametricGeometry(參數化幾何體) | function— 該屬性為一個函數,該函數以u、v值作為參數定義每個頂點的位置。需要返回THREE.Vector3的值,slices — 該屬性定義u值應該分成多少份,stacks — 該屬性定義v值應該分成多少份 |
Geometry(幾何體) | 構造函數沒有任何參數。通過添加屬性值得到相應幾何體 |
2. 幾何體的介紹
現在給這些幾何體進行分類。
如果按照維度分類,除了Geometry以外,前四個幾何體(PlaneGeometry、CircleGeometry、RingGeometry、ShapeGeometry)都是二維幾何體,剩下的都是三維的幾何體
如果按照難度分類,PlaneGeometry、CircleGeometry、RingGeometry、BoxGeometry、SphereGeometry、CylinderGeometry、ConeGeometry、TorusGeometry、TetrahedronGeometry、OctahedronGeometry、DodecahedronGeometry、IcosahedronGeometry、TorusKnotGeometry屬於簡單幾何體,剩下的都屬於復雜幾何體。
當然除了Geometry還有BufferGeometry,現在我們暫且不說,以后會慢慢用到。
3. 認識幾何體
話不多說,先上圖
圖片對應的就是這些幾何體,如果你想更加細致的認識這些幾何體請看demo。接下來的幾篇我將詳細的介紹這些幾何體的使用以及注意事項。
轉載請注明地址:郭先生的博客