Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • 手冊使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • 程式碼區塊中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • Dynamo in Forma Beta 版
    • 設定 Forma 中的 Dynamo Player
    • 在 Dynamo Player 中加入和分享圖表
    • 在 Dynamo Player 中執行圖表
    • Dynamo 計算服務與桌面版 Dynamo 的差異
  • 在 Dynamo 中撰寫程式碼
    • 程式碼區塊和 DesignScript
      • 什麼是程式碼區塊
      • DesignScript 語法
      • 速寫
      • 函數
    • 使用 DesignScript 的幾何圖形
      • DesignScript 幾何圖形基礎知識
      • 幾何基本型
      • 向量數學
      • 曲線:內插和控制點
      • 平移、旋轉和其他轉換
      • 曲面:內插、控制點、斷面混成、迴轉
      • 幾何參數化
      • 交集和修剪
      • 幾何布林運算
      • Python 點產生器
    • Python
      • Python 節點
      • Python 和 Revit
      • 設定您自己的 Python 樣板
    • 語言變更
  • 最佳實踐
    • 圖表策略
    • 指令碼撰寫策略
    • 指令碼撰寫參考
    • 管理您的程式
    • 在 Dynamo 中有效率地處理大型資料集
  • 範例工作流程
    • 入門工作流程
      • 參數式花瓶
      • 牽引點
    • 概念索引
  • 開發人員手冊
    • 從原始碼建置 Dynamo
      • 從原始碼建置 DynamoRevit
      • 管理和更新 Dynamo 中的相依性
    • 為 Dynamo 開發
      • 入門
      • Zero-Touch 案例研究 - 網格節點
      • 在 Zero-Touch 節點中執行 Python 指令碼 (C#)
      • 深入瞭解 Zero-Touch
      • 進階 Dynamo 節點自訂
      • 在 Dynamo 套件中使用 COM (互通性) 類型
      • NodeModel 案例研究 - 自訂使用者介面
      • 針對 Dynamo 2.x 更新您的套件和 Dynamo 資源庫
      • 針對 Dynamo 3.x 更新套件與 Dynamo 資料庫
      • 延伸
      • 定義 Dynamo 2.0+ 的自訂套件組織
      • Dynamo 指令行介面
      • Dynamo 整合
      • 為 Dynamo for Revit 開發
      • 發佈套件
      • 從 Visual Studio 建置套件
      • 將延伸當作套件
    • 提取請求
    • 測試預期結果
    • 範例
  • 附錄
    • 常見問題
    • 視覺程式設計和 Dynamo
    • 資源
    • 發行說明
    • 有用的套件
    • 範例檔案
    • 主體程式整合對應表
    • 下載 PDF
    • Dynamo 鍵盤快速鍵
Powered by GitBook
On this page
  • 算術運算子
  • 練習:黃金螺旋線公式
  • 第 I 部分:參數式公式
  • 第 II 部分:從公式到幾何圖形
  • 第 III 部分:從螺旋線到鸚鵡螺
  • 第 IV 部分:從鸚鵡螺到葉序
Edit on GitHub
Export as PDF
  1. 基本節點和概念
  2. 程式的建置區塊

數學

Previous資料Next邏輯

Last updated 6 days ago

如果資料最簡單的形式是數字,則關聯這些數字最簡單的方式就是透過數學運算。從諸如除號等簡單運算子到三角函數,再到更複雜的公式,數學是開始探索數字關係與樣式的良好方式。

算術運算子

運算子是一組元件 (加、減、乘、除等),使用代數函數與兩個數字輸入值,產生一個輸出值。在「運算子」>「動作」下可以找到這些運算子。

圖示
名稱 (語法)
輸入
輸出

加 (+)

var[]...[]、var[]...[]

var[]...[]

減 (-)

var[]...[]、var[]...[]

var[]...[]

乘 (*)

var[]...[]、var[]...[]

var[]...[]

除 (/)

var[]...[]、var[]...[]

var[]...[]

練習:黃金螺旋線公式

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

第 I 部分:參數式公式

透過公式結合運算子和變數,以構成更複雜的關係。使用滑棒建立可透過輸入參數控制的公式。

1. 建立表示參數式方程式中「t」的數字序列,因此,我們希望使用大到足以定義螺旋線的清單。

Number Sequence: 根據以下三項輸入定義數字序列:start、amount 與 step。

2.上述步驟已建立用於定義參數範圍的數字清單。接下來,建立表示黃金螺旋線方程式的節點群組。

定義黃金螺旋線的方程式如下:

以下影像以視覺程式設計形式表示黃金螺旋線。逐步檢查節點群組時,請盡可能注意視覺程式與書寫方程式之間的對應。

a.Number Slider:在圖元區加入兩個數字滑棒。這些滑棒代表參數式方程式中的 a 與 b 變數。這些表示彈性的常數,或表示我們可以針對所需結果進行調整的參數。

b.相乘 (*):相乘節點由星號表示。我們會重複使用此符號連接相乘的變數

c.Math.RadiansToDegrees:「t」值需要轉換為度,才能在三角函數中演算。請記住,Dynamo 預設使用度來運算這些函數。

d.Math.Pow:以「t」與數字「e」表示的函數,此函數會建立 Fibonacci 序列。

e.Math.Cos 與 Math.Sin:這兩個三角函數將分別區分每個參數式點的 X 座標與 Y 座標。

f.Watch:現在可以看到輸出是兩個清單,分別是產生螺旋線所用點的 x 與 y 座標。

第 II 部分:從公式到幾何圖形

Point.ByCoordinates: 將上方的相乘節點連接到「x」輸入,將下方的節點連接到「y」輸入。我們現在可以在螢幕上看到點的參數式螺旋線。

Polycurve.ByPoints: 將上一步的 Point.ByCoordinates 連接到 points。我們可以保留 connectLastToFirst 無輸入,因為不打算繪製封閉曲線。這會建立一條穿過上一步定義的每個點的螺旋線。

我們現在完成了 Fibonacci 螺旋線!接下來進一步將此分為兩個單獨的練習,我們分別稱之為鸚鵡螺與向日葵。這些是自然系統的抽象名稱,但可以充分呈現 Fibonacci 螺旋線的兩種不同應用。

第 III 部分:從螺旋線到鸚鵡螺

Circle.ByCenterPointRadius: 我們在此處將使用圓節點,採用與上一步相同的輸入。半徑的預設值為 1.0,所以我們可以立即看到輸出的圓。它會立即清晰展示點如何進一步偏離原點。

Number Sequence: 這是「t」的原始陣列。將此序列插入 Circle.ByCenterPointRadius 的半徑值後,圓心仍會離原點越來越遠,但半徑會增加,因而產生很酷的 Fibonacci 圓形。

如果您使用 3D 製作會更酷!

第 IV 部分:從鸚鵡螺到葉序

一開始,我們先執行上一個練習中的相同步驟:使用 Point.ByCoordinates 節點建立點的螺旋線陣列。

![](../images/5-3/2/math-part IV-01.jpg)

接下來,依照這些小步驟,以各種旋轉產生一系列螺旋線。

a.Geometry.Rotate: 有幾個 Geometry.Rotate 選項,請確保選擇以 geometry、basePlane 和 degrees 為輸入的節點。將 Point.ByCoordinates 連接至 geometry 輸入。在此節點上按一下右鍵,並確保將交織設定為「笛卡兒積」

b.Plane.XY: 連接至 basePlane 輸入。我們將繞原點旋轉,此原點的位置與螺旋線的基準位置相同。

c.Number Range: 對於角度輸入,我們希望建立多個旋轉。使用 Number Range 元件可以快速達成。將其連接至 degrees 輸入。

d.Number: 為了定義數字範圍,在圖元區以垂直順序加入三個數字節點。從上到下分別指定值為 0.0、360.0 與 120.0。這些值將驅動螺旋線旋轉。請注意將三個數字節點連接至 Number Range 節點後的輸出結果。

輸出開始形成一個漩渦。接下來調整某些 Number Range 參數,並查看結果的變化。

將 Number Range 節點的步長大小從 120.0 變更為 36.0。請注意,這會建立更多旋轉,因此會產生更密的格線。

將 Number Range 節點的步長大小從 36.0 變更為 3.6。現在,這會產生密度大得多的格線,螺旋線的方向性變得不清楚。各位,我們產生了一朵向日葵。

x=rcosθ=acosθebθx = r cos θ = a cos θ e^{bθ}x=rcosθ=acosθebθ
y=rsinθ=asinθebθy = r sin θ = a sin θe^{bθ}y=rsinθ=asinθebθ

現在,上一步的眾多節點都沒問題,但工作量很大。若要建立更有效率的工作流程,請參閱 將 Dynamo 表示式的字串定義為一個節點。在接下來的一系列步驟中,我們將瞭解使用參數式方程式來繪製 Fibonacci 螺旋線。

現在我們已經建立圓形的鸚鵡螺殼,接下來使用參數式格線。我們將對 Fibonacci 螺旋線使用基本旋轉,以建立 Fibonacci 格線,並在對結果進行塑型。

DesignScript
向日葵種子長大後
17KB
Building Blocks of Programs - Math.dyn