NotOnlyCode / NOC

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

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

06=Introduction to RhinoScript (Oprators & Functions)

        這次我們要簡單介紹幾個在VB語言中經常出現的幾種不同類型的「碼」(code)。在說明之前,請先看下列例子:

       
        A = 10 + 20
        B = 10 + 20 * 0.5
        A = Sin(10 + 20) + Sqr(0.5)
        B = Tan(10 + 20) / Log(0.5)

        在這面的這幾個式子中出現了四種類型VB語言碼:(1) Numbers (數值)、(2) Variables (變數)、(3) Operators (運算子)、(4) Functions (函數)。
(1) Numbers & (2) Variables
        在VB中,數字可以是整數或具有小數點,同時也可是正數或負數。式子中的 A,B 我們稱為變數,在VB語言中所有變數都必須被宣告,而宣告的方式有很多種,最常用的宣告陳述式是 Dim ,在VB中 Dim 的意思基本上就像是定義。當我們在宣告陳述區寫下 Dim A,B,表示電腦會為我們預先留下記憶體的位置給 A,B 這兩個變數。有時後我們也會看見有人這樣寫:Dim A As String,這樣的寫法是事先告訴電腦這個變數的資料類型,差別在於因為不同的資料類型電腦為我們預先留下的記憶體位元數 (bits) 是不同的。不過,這時候我們還不需要了解的如此深入,只要知道變數的宣告方式即可,其他的知識大略有個概念即可。另外,上面範例式中的 " = ",在數學式中是表示「等於」的概念,但是在電腦語言中用「等於」來解釋會出現問題。譬如說,如果我們寫下 N = N+1 的式子,這在數學中是不成立的,因為如果我們將 N 以 1 帶入,那 1 = 1+1 當然就不成立。因此,在電腦語言中 " = " 的概念是:將 " = " 右邊的答案或結果代入左邊的變數。我們用下面的例子做個簡單的練習:

        Dim A
        A = 10 + 20
        A = A +1
        Call Rhino.Print(A)

        我們會發現答案是 31。為什麼?因為VB語言的程式碼是由上往下讀的,例子中第一行的意思是:宣告一個 A 變數;第二行的意思是:將 10+20 的結果代入 A,所以這時候的 A 是 30;第三行的意思是:將 A 加 1 之後再帶入 A 所以最後 A 是 30+1 也就是 31。
(3) Operators
        再來要說明的就不這麼複雜了,在VB語言中的運算子大致可以分為三類:數學運算子、邏輯運算子、布爾值 (boolean values) 運算子。邏輯運算子在先前的文章中已經做過說明本文就不再重複,數學運算子則相當容易理解,基本上數學運算子的功能跟數學上的方法相同只需要了解其在於VB中表達與運用的方式即可。另外,布爾值運算子在此只做簡單的介紹,詳細的用法及概念會在之後詳細說明。

        +        add two values
        -        substract two values
        *        mutiply two values
        /        divide two values
                divide two values but return only whole numbers
        ^        raise a number to the power of an exponent
        Mod      arithmetic modulus
------------------------------------------------------------------------
        And      performs a logical conjunction
        Eqv      performs a logical equivalence
        Imp      performs a logical implication
        Not      performs a logical negation
        Or       performs a logical disjunction
        Xor      performs a logical exclusion 

       我們以下用幾個簡單的例子來練習數學運算子的運用:(1) 試求 2 的 1 到 10 次方的值各為多少?(2) 試求 10 除以 3 的餘數為何?這兩題在 RhinoScript 中的寫法如下:

        Dim A, i

        For i = 1 To 10
                A = 2 ^ i
                Call Rhino.Print(A)
        Next
------------------------------------------
        Dim A

        A = 10 Mod 3
        Call Rhino.Print(A)

(4) Functions 
        最後,本文將簡單說明幾個常用的數學函數,在VB語言中數學函式可以代入變數,所以在一開始的範例式中我們可以看見 Sin(10 + 20 ), Tan(10 + 20) 等函數式。以下將介紹幾個經常使用的數學函式在VB中的符號:

        Sin()        Sine of a number
        Cos()        Cosine of a number
        Atn()        ArcTangent of a number
        Log()        Natural logarithm of a number larger than 0
        Sqr()        Square root of any positive number
        Abs()        Absolute (positive) value of any number

        在理解本文介紹的內容之後,我們將有機會在RhinoScript中輕易地建立某些數學關係,也就是某種以數學為基礎的規則。簡單地說,如果某些生物現象、運動狀態可以被數學關係所描述,我們就能找到其中的規則或說是一種「模式」(pattern) ,因此也就讓演算成為可能。        
        
相簿設定
標籤設定
相簿狀態