在三維空間中,標識乙個物體的位置資訊,通常是通過世界座標的形式,世界座標由三個數字組成,分別代表x、y、z軸方向的座標,那麼如果要將建立的向量文字加入到指定位置,就需要設定向量文字的座標,在threejs中,任何mesh
都有position
屬性,只要將該屬性設定到構件所在的位置即可。在bimface中,任何乙個構件都有自己的座標,只要獲取到構件的座標並設定到向量文字的position
屬性,就可以了。
這裡我們以繪製的空間為例,首先需要通過getroomproperty
獲取模型中空間的屬性以及邊界資訊,這些資訊是繪製空間的必要條件,通過該介面可以獲取到boundary
、height
等資訊,boundary
描述了空間的邊界,而height
描述了該邊界的垂直高度,由此便構成了乙個封閉的空間。此外,還有兩個核心引數,minpt
和maxpt
,計算向量文字的位置就是通過這兩個核心變數以及height
來確定的,如下圖
計算出座標後,還需要控制向量文字的大小,因為相對於空間塊太大或太小都不合適,所以文字的寬度大概是空間頂面的80%即可。經過測算(不一定準確),計算方式就是最大點和最小點的座標距離的10%作為向量文字的寬度。核心**如下:
// 驗證向量文字3d展示
function loadtext() );
var matlite = new three.meshbasicmaterial();
var message = "數字運維";
// 引數列表:文字 | 字型大小 |
目前為止,我們完成了將向量文字加入到三維模型場景中的指定構件平面上,但是這個向量文字是乙個二維的,那如果我想讓文字富有立體感,在z軸方向有高度,該怎麼辦呢?其實很簡單,我們構造向量文字mesh
的時候,採用的是shapegeometry
,我們只需要將shapegeometry
替換成extrudegeometry
,同時設定下amount
引數即可。**做如下修改:
// 引數列表:文字 | 字型大小 |
var shapes = font.generateshapes(message, 640, 2);
var geometry = new three.extrudegeometry(shapes,);
以下是富有立體感的向量文字效果:
悠揚的牧笛
宣告:本部落格原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未授權貼子請以現狀保留,**時必須保留此段宣告,且在文章頁面明顯位置給出原文連線。
BIM BIMFACE中實現報警裝置呼吸燈效果
實現報警呼吸燈效果,目前產品中報警裝置僅僅是做了高亮處理,並沒有明顯的動畫效果來提示使用者該裝置正在報警,bimface中也提供了構件閃爍的介面,但是看起來比較生硬,檢視 發現是通過定時器實現,比較占用cpu資源,而呼吸燈報警效果是採用著色器程式編寫,通過gpu執行,效能和效果均優於定時器。首先,獲...
初學筆記 建立向量和矩陣,向量 的知識
1 行向量 建立行向量括在方括號中的元素的集合,用空格或逗號分隔的元素。r 7 8 9 10 11 7,8,9,10,11 r 7 8 9 10 11 r 7 8 9 10 11 t 2,3,4,5,6 res r t res 9 11 13 15 17 2 列向量 建立列向量通過內附組方括號中的元...
Qgis開發14 建立向量元素
qgis開發 建立向量元素 sf2gis 163.com 2014年8月27日 向量元素的建立需要構造幾何和屬性部分。建立向量元素就是建立向量元素的各個部分,然後組裝為乙個向量元素。qgsfeature是向量元素的抽象。qgsgeometry是幾何部分的抽象。屬性部分的屬性名由qgsfields 是...