NotOnlyCode / NOC

關於部落格
an open platform for discussing about the generative design on Rhinoceros
  • 4991

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

03=Introduction to RhinoScript(Loops-1)


        在瞭解RhinoScript的基本語法之後,我們這次要說明的是VB中的「迴圈」(Loops)種類與概念。VB的迴圈基本上可以分為三種:(1) For...Next (計數迴圈)、(2) Do...Loop (條件式迴圈)、(3) For Each...In...Next (陣列迴圈)。三種迴圈的特色與用法各有不同,端看在何種需要來選擇。舉例來說,計數迴圈顧名思義就是指當我們已經知道某一個數量時所使用;而條件式迴圈則是迴圈本身具有條件的設定功能,透過條件的符合與不符合判斷可以決定進入迴圈或者離開迴圈;陣列迴圈則是將在一個「陣列」(array)中的物件一一取出來執行某些命令動作。將上述的迴圈種類與表達方式整理如下:

                (1) 計數迴圈
           For...Next
       (2) 條件式迴圈
           Do While...Loop (前側式)
           Do Until...Loop (前側式)
           Do...Loop While (後測式)
           Do...Loop Until (後測式)
           Do...Loop (無窮)
           While...Wend (如果為真)
       (3) 陣列迴圈
           For Each...In...Next

        接下來,我們就一一說明上述的迴圈運用方式以及提供簡易的範例。先從計數迴圈說起,如果我們執行下列程式,我們可以在Rhino工作介面的Command列看到Rhino當我們印出"1"。

                Dim A: A=1
       Call Rhino.Print(A)

        以此類堆,如果我們要依序印出"1 2 3 4 5 6 7 8",當然可以很辛苦地這麼寫:

                Dim A: A=1
       Dim B: B=2
       Dim C: C=3
       Dim D: D=4
       Dim E: E=5
       Dim F: F=6
       Dim G: G=7
       Dim H: H=8
     
       Call Rhino.Print(A)
       Call Rhino.Print(B)
       Call Rhino.Print(C)
       Call Rhino.Print(D)
       Call Rhino.Print(E)
       Call Rhino.Print(F)
       Call Rhino.Print(G)
       Call Rhino.Print(H)

   但是電腦如果真的只能這麼笨地一個口令一個動作,那我會請各位現在就放棄吧!這時候如果我們運用計數迴圈,為得到同樣的結果,可以改成這麼寫:

                Dim i
                
       For i = 1 To 8
          Call Rhino.Print(i)
       Next

        這就是所謂的計數迴圈,當我們已知某個數量(從1到8),就可以利用計數迴圈重複執行某個動作,而在此所定義的 "i" 是個變數,每次重新進入迴圈時,"i" 值會被替換為下一個數字。
        因此,如果我們很快地將計數迴圈結合RhinoScript Methods,試著執行下列的指令看看:

                Dim StratPoint, EndPoint
       Dim i

       For i = 0 To 10
          StartPoint = Array ( i*10, 0, 0)
          EndPoint = Array ( i*10, 10, 0)
          Call Rhino.AddLine(StartPoint, EndPoint)
       Next

        我們可以很快地得到11條線,每條線的長度都是10,間距也都是10,第一條線的起點為(0,0,0)終點為(0,10,0),每個下一條線則是間距上一條線10的單位的平行線。如果善加利用計數迴圈與函數規則,就可以做出許多複雜的形體,不僅可省下許多力氣,也可能會產生出一些出乎意料的形體。這次只是簡單地介紹了計數迴圈的最基本用法,之後我們分別會再說明其他種類迴圈的基本用法,並且提供一些比較複雜的迴圈組合運用方式。


 


相簿設定
標籤設定
相簿狀態