10.014 CTD
  • Overview
  • Schedule
  • Administrative
    • Accessing Rhino remotely
    • Rhino for Mac
  • ASSIGNMENTS
    • Dates and rubrics
    • Generative design
      • Generative design
    • Parametric design
      • Parametric design
    • Simulated design
      • Simulated design
      • Simulated design
  • SESSION 1B
    • Computer Aided Design
    • Ranges and expressions 1
      • Ranges and expressions 2
      • Ranges and expressions 3
      • Ranges and expressions 4
      • Ranges and expressions 5
      • Ranges and expressions 6
  • SESSION 2A
    • Visual programming 1
      • Visual programming 2
      • Visual programming 3
      • Visual programming 4
    • Associative modelling 1
      • Associative modelling 2
      • Associative modelling 3
  • SESSION 2B
    • Logical Patterns 1
      • Logical patterns 2
      • Logical patterns 3
  • SESSION 3A
    • Spatial geometry 1
      • Spatial geometry 2
      • Spatial geometry 3
      • Spatial geometry 4
      • Spatial geometry 5
      • Spatial geometry 6
      • Spatial geometry 7
    • Curve geometry 1
      • Curve geometry 2
      • Curve geometry 3
      • Curve geometry 4
  • SESSION 3B
    • Surface geometry
    • Parametric modelling 1
      • Parametric modelling 2
      • Parametric modelling 3
      • Parametric modelling 4
  • SESSION 4A
    • Information nesting 1
      • Information nesting 2
      • Information nesting 3
    • Data landscapes 1
      • Data landscapes 2
      • Data Landscapes 3
      • Data landscapes 4
  • SESSION 4B
    • Mesh geometry 1
      • Mesh geometry 2
      • Mesh geometry 3
  • SESSION 5A
    • Space and time 1
      • Space and time 2
    • Modelling entities 1
      • Modelling entities 2
      • Modelling entities 3
  • SESSION 5B
    • Multibody dynamics 1
      • Multibody dynamics 2
    • Material elasticity 1
      • Material elasticity 2
      • Material elasticity 3
  • SESSION 6A
    • Form-finding 1
      • Form-finding 2
      • Form-finding 3
      • Form-finding 4
  • SESSION 6B
    • AI Image generation 1
      • AI Image generation 2
      • AI Image generation 3
  • APPENDIX
    • Spirograph 1
      • Spirograph 2
    • Curves
    • Swarm Intelligence 1
      • Swarm Intelligence 2
    • Hybrid programming 1
      • Hybrid programming 2
Powered by GitBook
On this page
  1. SESSION 1B
  2. Ranges and expressions 1

Ranges and expressions 2

Spreadsheet programming

PreviousRanges and expressions 1NextRanges and expressions 3

Last updated 9 months ago

Range Normalization

Next we create a new column and label it “time”, as a mnemonic. We enter the expression = A2 / Max( A:A) and expand the range to match the length of the “index” column. The expression computes the division between a cell’s value, on the left, by the maximum number found in the entire left column, hence A:A.

Doing so, we end up with a new range starting always from zero and ending always in one, independent of how many rows we expand columns A and B together! The operation of taking a range and mapping it onto [0.0, 1.0] or unit range is called normalization.

What we have accomplished is to take the unbound progression of natural numbers, i.e. they are infinite, and bound it into a finite real domain. Its label was named “time” because if we consider the values created as percentages, i.e. from 0% to 100% they are capturing the notion of progress towards completing a task in time.

Practice

  • Construct a range using the same process used for the “index” column but start from any integer value, say 8 to 16 or -6 to 21.

  • Create integer ranges that do not step forward one by one but perhaps at smaller or larger step-size, or even marching backwards.

  • Consider a range that does not start from zero, say from min_value to max_value. Create an expression that computes the equivalent normalized range for the “time” column.

  • Assuming an integer number range from min_value to max_value (say -10 to 10); given a value (say 0.25) from the equivalent normalized range, can you determine its index value?

Linear Mapping

Next enter the label “angle” in column C and expand the expression = B2 * 2 * PI( ) as seen below. This produces a transformation from the [0, 1] range to [0, 2π]. We thus converted an abstract bounded number sequence into a semantically angular range, with implied units of radians. Operations that involve only additions and multiplication are known as linear. Visually, you may plot the time/angle range-pair and verify that it will trace a line, in this particular case through the origin.

Conceptually, this transformation is also very important. The core idea here is that in computation, we always start with abstract number but progressively apply our own conventions to attach semantic meaning. We call this modelling. In this way, as long as we stay faithful to our conventions, we can represent such data such as text i.e. sequences of characters; geometric entities, such as points and vectors; colours for digitized pictures etc.

Non-Linear Mapping

Next we will create two new columns to map the angular sequence into a cosine and a sine ranges. Notice that the trick we are playing here is writing one expression for the first cell of each column, relating horizontally with previously computed values, and expand the ranges. What we are not doing is filling the table cell by cell. Instead we let computation logic flow automatically.

Practice

  • Spreadsheets support a large number of mathematical functions. Construct some new columns combining and plotting some of those functions. You can use the “fx” button to explore the full list of available functions.

  • The intermediate columns produced can be collapsed into a single expression. Try to map directly between the “index” and the “cosine” by composing multiple expressions.

Filling the 'time' column
Filling up the 'angle' column