Ruby 搭配 Sketchup 學習筆記(八)
前情提要
Sketchup 是一款在建築、都市計畫和遊戲開發都頗有名氣的 3D 建模軟體,而 Ruby 則是一個程式語言,它可以搭配 Sketchup 達成程式化 建模的任務,近期經由系主任引薦,要開發 Sketchup 的 Extension,雖然我寫過 Ruby,但 Sketchup 則是完全沒碰過,於是利用文章來記錄所學的一點一滴。
本篇內容
- 視景畫面
- 照相機
視景畫面
視景畫面代表使用者目前畫面上呈現的資訊,以下示範如何取用視景資訊:
view = Sketchup.active_model.active_view height = view.vpheight.to_s width = view.vpwidth.to_s puts "視景尺寸:#{width}:#{height}" puts "上左:#{view.corner(0)[0]},#{view.corner(0)[1]}。" puts "上右:#{view.corner(1)[0]},#{view.corner(1)[1]}。" puts "下左:#{view.corner(2)[0]},#{view.corner(2)[1]}。" puts "下右:#{view.corner(3)[0]},#{view.corner(3)[1]}。" center = view.center puts "視景中心點:#{center[0]},#{center[1]}" origin = view.screen_coords [0,0,0] puts "繪圖原點的位置:\n#{origin[0].to_f}\n#{origin[1].to_f}"
輸出結果:
視景尺寸:2880:1504
上左:0,0。
上右:2880,0。
下左:0,1504。
下右:2880,1504。
視景中心點:1440,752
繪圖原點的位置:
958.4791057184447
1012.086470675737
還有一個有趣的用法是讓畫面聚焦在特定物件
view = Sketchup.active_model.active_view view.zoom Sketchup.active_model.entities[0]
輸出結果:
照相機
以下示範變更視景位置:
eye = [100,100,200] target = [0,0,0] up = [0,0,1] my_cam = Sketchup::Camera.new eye, target, up view = Sketchup.active_model.active_view view.camera = my_cam
輸出結果:
其中的參數分別是:
- eye:視角位置
- target:看哪裡
- up:移動時向量,會決定畫面的角度