【版權聲明】
作者:NIGHTAWK
本文首發於大水牛平臺
如需轉載請聯繫作者
【往期回顧】
【題外話】
啊啊啊啊,最近好忙好忙啊,emmmmmm我自己自覺把自己埋了。。。嗯,埋了就不用寫教程了,這次用挖掘機挖坑,快哈哈哈哈哈哈哈哈哈哈(本人已瘋)。
【正文】
首先,processing也擁有各種強大的libraries,什麼是libraries呢?其實可以簡單理解為grasshopper的插件。那哪裡可以下載libraries呢?一個方法是可以在官網中找到libraries的下載地址;另一個方法是在processing程序裡面下載。如圖所示:
(PS,下載的文件放在c盤Documents\Processing\libraries路徑下。)
這期教程的主要目的就是簡單講解一下libraries的運用,後期還會詳細講解運用的libraries插件。為了更好理解插件的作用,先用一個簡單的grasshopper文件為範例,同時在processing中模擬出來。Grasshoper中比較經典的一個功能就是kangaroo的物理模擬,這次先用一個簡單的小案例,這個小案例模擬了彈力系統,隨機生成點,然後一定範圍內的點連接彈力,再開始物理模擬,如下圖所示:
好的,現在通過gh,我們能夠大致理解分為3個步驟:
1. 隨機生成若干個點
2. 每個點和周圍的點連線並算距離,當距離小於一個數值的時候,2點之間的直線具有彈力
3. 再將所有的點和具有彈力的直線,放入到物理世界中,進行物理模擬
所以回到processing中,我們也是同樣的一步一步的來,不過多了一步,導入libraries,創建所需要的參數。
第一步,導入libraries,創建參數。我們將libraries安裝成功後,這次我們運用verletphysics這個library。
點擊Sketch---Import_Library ---- verletphysics.會出現如下所示:
上圖是導入此library的所有功能,而本次案例我們只需要2D部分的,所以我們可以簡化一下,如圖所示:
然後創建各種參數,當要創建library中的變量時,類似class,要用屬於library的定義方式,
如VerletPhysics2D physics;
VerletParticle2D p = new VerletParticle2D(random(100, width-100), random(100, height-100));
特別提醒,類似kangaroo的KangarooPhysics, Processing中也需要通過VerletPhysics2D physics,創建物理世界。
第二步,也同樣類似於kangaroo,我們需要創建隨機的particle,即運算的點,並在void setup()中運行, 如圖所示:
第三步,提取particle,算每個點於其他點的距離,然後小於一定數值的兩點,連接彈簧。具體寫法如下圖,由於本次只是講解library,所以不細說寫法思路。
最後通過,已經創建的物理世界physics,運用physics.update();進行運算,為了更好的顯示,分別給了particle白色,和spring紅色。並將這些功能放在了void draw,以不停的進行運算。
最後效果如圖,
往期回顧:
點擊關注微信公共號,獲取更多精彩內容。
大水牛數字設計聯盟是一個傳播分享建築數位化設計與數位化建造資訊的平臺。
並且會不斷連載原創或轉載有價值的參數化軟體教程
(犀牛、grasshopper、python編程、revit、processing等等)
是一個視野與技術並重的數位化傳播平臺。
我們的目標是把這個平臺創造成一個擁有良好氛圍的學習平臺。
我將帶頭衝鋒;我的立場非常堅定;
我們的狂怒你駕馭不住;黎明就在眼前。
歡迎你們加入我們的戰隊,
記住我們不是一個人在戰鬥!
你的鼓勵是我分享的最大動力!