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
  • 建立顏色
  • 查詢顏色值
  • 顏色範圍
  • 顏色預覽
  • 曲面上的顏色
  • 練習
  • 有顏色的基本螺旋線
  • 曲面上的顏色練習
Edit on GitHub
Export as PDF
  1. 基本節點和概念
  2. 程式的建置區塊

顏色

Previous字串Next使用清單設計

Last updated 1 month ago

對於營造引人注目的視覺效果以及彩現視覺程式輸出的差異而言,顏色是很棒的資料類型。使用抽象資料及不同的數字時,有時很難查看變更的項目與變更程度。顏色在這裡大有用武之地。

建立顏色

在 Dynamo 中使用 ARGB 輸入建立顏色。這對應於 Alpha、紅色、綠色與藍色通道。Alpha 代表顏色的 透明度,而其他三項用作主要顏色以協同產生顏色的整個光譜。

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

ARGB 顏色 (Color.ByARGB)

A、R、G、B

color

查詢顏色值

以下表格中的顏色會查詢用於定義顏色的性質:Alpha、紅色、綠色與藍色。請注意,Color.Components 節點會提供所有四項作為不同輸出,因此該節點更適合查詢顏色的性質。

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

Alpha (Color.Alpha)

color

A

紅色 (Color.Red)

color

R

綠色 (Color.Green)

color

G

藍色 (Color.Blue)

color

B

組成 (Color.Components)

color

A、R、G、B

以下表格中的顏色對應於 HSB 顏色空間。將顏色分為色相、飽和度與亮度可以更直觀地解譯顏色:顏色應該是怎樣的?顏色是什麼色彩?顏色的明暗程度應該是怎樣的?這是分別劃分的色相、飽和度與亮度。

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

色相 (Color.Hue)

color

色相

飽和度 (Color.Saturation)

color

飽和度

亮度 (Color.Brightness)

color

亮度

顏色範圍

顏色範圍類似於練習的 Remap Range 節點:可將數字清單重新對映到其他範圍。但它並非對映到 數字 範圍,而是根據介於 0 至 1 的輸入數字對映到 顏色漸層。

目前的節點運作正常,但第一次就要讓所有內容正常運作可能會有些困難。熟悉顏色漸層的最佳方式是以互動方式對其進行測試。接下來我們進行快速練習,以檢閱如何設置輸出顏色對應於數字的漸層。

  1. 定義三種顏色:使用 Code Block 節點,透過插入 0 與 255 的適當組合來定義 red、green 與 blue。

  2. 建立清單: 將三種顏色合併到一個清單中。

  3. 定義索引:建立清單以定義每種顏色的掣點位置 (從 0 至 1)。請注意值 0.75 為綠色。這會在顏色範圍滑棒上,將綠色置於水平漸層長度的 3/4 處。

  4. Code Block:要轉換為顏色的輸入值 (介於 0 至 1 之間)。

顏色預覽

使用 Display.ByGeometry 節點可以在 Dynamo 視埠中查看顏色幾何圖形。這有助於區分不同類型的幾何圖形、展示參數式概念,或定義模擬的分析圖例。輸入很簡單:幾何圖形與顏色。若要建立類似上面影像的漸層,請將顏色輸入連接至 Color Range 節點。

曲面上的顏色

透過 Display.BySurfaceColors 節點,我們可以使用顏色對映整個曲面上的資料!此功能帶來某些振奮人心的可能性,可以對透過離散分析 (例如日光、能源及鄰近) 取得的資料進行視覺化。在 Dynamo 中將顏色套用至曲面類似於在其他 CAD 環境中將材質套用至材料。接下來在以下簡短練習中示範如何使用此工具。

練習

有顏色的基本螺旋線

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

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

本練習的內容主要是以參數式方法控制顏色及幾何圖形。幾何圖形是一個基本螺旋線,我們下面使用 Code Block 定義。這是快速輕鬆的參數式函數建立方式,由於我們的焦點是顏色 (而不是幾何圖形),因此我們使用程式碼區塊高效建立螺旋線,而不贅述圖元區。隨著手冊改用更先進的材料,我們將更頻繁地使用程式碼區塊。

  1. Code Block: 定義包含上述公式的兩個程式碼區塊。這是快速建立螺旋線的參數式方法。

  2. Point.ByCoordinates:將程式碼區塊的三項輸出插入節點的座標。

現在我們可以看到建立螺旋線的一系列點。下一步是建立通過這些點的曲線,以便能看到螺旋。

  1. PolyCurve.ByPoints: 將 Point.ByCoordinates 輸出連接至節點的 points 輸入。我們會得到一條螺旋曲線。

  2. Curve.PointAtParameter: 將 PolyCurve.ByPoints 輸出連接至 curve 輸入。此步驟的目的是建立沿曲線滑動的參數式牽引點。由於曲線透過參數對點進行演算,因此我們需要輸入 0 與 1 之間的 param 值。

  3. Number Slider: 加入圖元區後,將 min 值變更為 0.0,max 值變更為 1.0,step 值變更為 0.01。將滑棒輸出插入 Curve.PointAtParameter 的 param 輸入。現在,我們將看到沿螺旋線的長度由滑棒的百分比表示的點 (0 表示起點,1 表示終點)。

建立參考點後,現在我們比較從參考點到螺旋原始定義點的距離。此距離值將驅動幾何圖形與顏色。

  1. Geometry.DistanceTo: 將 Curve.PointAtParameter 輸出連接至 輸入。將 Point.ByCoordinates 連接至 geometry 輸入。

  2. Watch: 產生的結果將顯示從每個螺旋點至曲線上參考點之距離的清單。

下一步驟是使用從螺旋點至參考點之距離的清單來驅動參數。我們將使用這些距離值來定義曲線上一系列圓球的半徑。若要讓圓球保持合適的大小,我們需要 重新對映 距離值。

  1. Math.RemapRange: 將 Geometry.DistanceTo 輸出連接至數字輸入。

  2. Code Block: 將值為 0.01 的程式碼區塊連接至 newMin 輸入,將值為 1 的程式碼區塊連接至 newMax 輸入。

  3. Watch: 將 Math.RemapRange 輸出連接至一個節點,將 Geometry.DistanceTo 輸出連接至另一個節點。比較結果。

此步驟已將距離清單重新對映到較小的範圍。我們可以採用合適的任何方式編輯 newMin 與 newMax 值。這些值將重新對映,並在整個範圍內具有相同的 分配比率

  1. Sphere.ByCenterPointRadius: 將 Math.RemapRange 輸出連接至 radius 輸入,將原始 Point.ByCoordinates 輸出連接至 centerPoint 輸入。

變更數字滑棒的值,查看圓球大小更新。我們現在有一個參數式波浪

圓球的大小展示出由曲線上的參考點定義的參數式陣列。接下來我們應用相同的概念,使用圓球半徑來驅動其顏色。

  1. Color Range: 加入圖元區頂部。懸停在 value 輸入上時,我們會注意到要求的數字介於 0 與 1 之間。我們需要重新對映 Geometry.DistanceTo 輸出中的數字,以便其與此範圍相容。

  2. Sphere.ByCenterPointRadius: 我們暫時停用此節點的預覽 (按一下右鍵 >「預覽」)

  1. Math.RemapRange: 此程序似乎應該很熟悉。將 Geometry.DistanceTo 輸出連接至數字輸入。

  2. Code Block: 與之前的步驟類似,為 newMin 輸入建立值 0,為 newMax 輸入建立值 1。請注意,在此案例中,我們可以從一個程式碼區塊定義兩個輸出。

  3. Color Range: 將 Math.RemapRange 輸出連接至 value 輸入。

  1. Color.ByARGB: 這是我們為了建立兩種顏色將執行的作業。雖然此程序可能貌似有些難,但是它與其他軟體中的 RGB 顏色相同,我們只是剛剛使用視覺程式設計來執行此作業而已。

  2. Code Block: 建立 0 與 255 兩個值。將兩個輸出插入與以上影像相同的兩個 Color.ByARGB 輸入 (或建立您最愛的兩種顏色)。

  3. Color Range:colors 輸入要求提供顏色清單。我們需要使用上一步驟中建立的兩種顏色建立此清單。

  4. List.Create: 將兩種顏色合併到一個清單中。將輸出插入 Color Range 的 colors 輸入。

  1. Display.ByGeometryColor: 將 Sphere.ByCenterPointRadius 連接至 geometry 輸入,將 Color Range 連接至 color 輸入。現在,我們已在整個曲線範圍內建立平滑的漸層。

如果我們變更之前定義中 Number Slider 的值,顏色與大小就會更新。在此案例中,顏色與半徑大小直接相關:我們現在已在兩個參數之間建立視覺連結!

曲面上的顏色練習

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

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

首先,我們需要建立 (或參考) 將用作 Display.BySurfaceColors 節點輸入的曲面。在此範例中,我們將在正弦及餘弦曲線之間進行斷面混成。

  1. 此節點群組將沿 Z 軸建立點,然後根據正弦及餘弦函數將其取代。然後,使用兩點清單產生 NURBS 曲線。

  2. Surface.ByLoft:在清單的 NURBS 曲線之間產生內插曲面。

  1. File Path:選取將針對下游像素資料進行取樣的影像檔案

  2. 使用 File.FromPath 將檔案路徑轉換為檔案,然後傳送至 Image.ReadFromFile 以輸出供取樣的影像

  3. Image.Pixels:輸入影像,並提供沿影像的 x 和 y 維度將使用的取樣值。

  4. 滑棒:提供 Image.Pixels 的取樣值

  5. Display.BySurfaceColors:分別沿 X 與 Y 軸在整個曲面內對映一系列顏色值

取樣解析度為 400x300 之輸出曲面的特寫預覽

#part-ii-from-logic-to-geometry
16KB
Building Blocks of Programs - Color.dyn
238KB
BuildingBlocks of Programs - ColorOnSurface.zip
archive