FOLD (靈活摺紙清單資料結構)是一種用於描述摺紙模型的文件格式(擴展名為.fold
):摺痕圖案、山谷圖案、折疊狀態等。的網格,以及它們之間的鏈接,具有可選的 2D 或 3D 幾何形狀,以及幾何重疊的面的拓撲堆疊順序。網格還可以輕鬆儲存其他使用者定義的資料。一個 FOLD 檔案甚至可以在「框架」中儲存多個此類網格(但任何程式碼尚不支援此功能)。
此儲存庫既記錄了FOLD 格式(該格式仍處於早期階段,因此其定義正在不斷發展),並提供 Web軟體工具和JavaScript 程式庫來協助操作 FOLD 檔案。 FOLD 是基於JSON (JavaScript 物件表示法)構建,因此解析器基本上適用於所有程式語言。解析後,該格式也可用作您想要在軟體中表示折疊的典型資料結構。我們的庫還幫助建立有用的冗餘資料結構以導航網格。
FOLD 在本質上與用於儲存 3D 網格的 OBJ 格式(以及其他類似格式)類似;它的主要顯著特徵是易於解析、易於擴展、能夠透過堆疊順序消除重疊面的歧義,以及定義邊緣以及定義邊緣屬性(例如山谷分配)和任意多面體複合體的能力。 (沒有邊,OBJ 無法區分共用兩個連續頂點的兩個面和共用一邊的面。)此外,FOLD 可以支援連結(具有 1D 邊,但沒有 2D 面)。
這是支援 FOLD 格式的軟體,由該專案和其他人建構:
對於簡單的 Web 應用程序,請將此標籤添加到您的 HTML 中: <script src="https://edemaine.github.io/fold/dist/fold.js"></script>
(或儲存dist/fold.js
並使用它)。然後,如果將FOLD = require('fold')
加入 JavaScript/CoffeeScript 程式碼中,則可以透過FOLD.moduleName.functionName
存取該函式庫,例如FOLD.filter.collapseNearbyVertices
。
對於 Node 應用程序,只需npm install --save fold
;然後將FOLD = require('fold')
加入您的 JavaScript/CoffeeScript 程式碼;然後透過FOLD.moduleName.functionName
存取庫,例如FOLD.filter.collapseNearbyVertices
。
FOLD 函式庫 API 記錄了用於操作 FOLD 物件的可用模組和函數。如果您有.fold
文件,請先使用JSON.parse(fileContents)
解析它以取得 FOLD 物件。
JavaScript 函式庫也提供了一個名為fold-convert
的命令列介面。要使用它,請確保安裝了 Node.js,然後從命令列執行npm install -g fold
。然後您可以使用以下功能:
fold-convert -o .fold *.opx
:將 ORIPA .opx
檔案轉換為.fold
。fold-convert --flat-fold -o B.fold A.fold
:將平折摺痕圖案A
轉換為折疊幾何形狀B
FOLD 格式是由三個人發明的:
我們歡迎您的回饋和建議!目標是讓計算摺紙中的所有軟體都支援 FOLD 作為通用交換格式。