我在SceneKit中編寫了一個三維force-directed graph,我將節點建模爲具有固定費用和質量的物理球體。如何將SceneKit中的物理字段組合在一起?
典型地,基於虎克定律的彈簧狀的吸引力被用於 吸引對圖形的邊緣的端點:
這些球必須以達到所要求的動態施加徑向引力和電場彼此相對,同時使用諸如基於庫侖定律的帶電粒子的排斥力來分離所有的節點對。
當發現SCNNode
只提供一個physicsField
屬性時,會出現問題。
目前,我沒有辦法做到這一點,沒有兩個單獨的物理節點佔據相同的空間(yuck和不可能?)。我試過用靜態/動態物體插入子體來容納多個字段,但是這種方法似乎根本不起作用(即沒有任何反應)。
在一個有點相關的說明 - SceneKit的物理引擎感到相當不完整的我,因爲三維力向圖繪製在這樣的框架的類型化使用率下降。
例如,SceneKit不具有SKPhysicsJointSpring
的3D版本,使得實現節點到節點邊緣吸引物理學的工作變得非常繁瑣。雖然它確實功能SCNPhysicsBehavior
,但它幾乎沒有任何文檔來創建自定義行爲的子類。
仍然在公網接口沒有提供任何方法來覆蓋,使得反向工程它的風險和不安全的應用程序商店的使用:
open class SCNPhysicsBehavior : NSObject, NSSecureCoding {
}
純粹使用電場絕對不行。 –
這與使用Hooke和Coulumb的定律不同,但它似乎可以爲圖形可視化提供基礎。你能擴展你爲什麼說它不起作用嗎? – roop