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 3A
  2. Spatial geometry 1

Spatial geometry 5

PreviousSpatial geometry 4NextSpatial geometry 6

Last updated 8 months ago

Cross Product

For a pair of vectors u=[xu,yu,zu]u = [x_u, y_u, z_u]u=[xu​,yu​,zu​] and v=[xv,yv,zv]v = [x_v, y_v, z_v]v=[xv​,yv​,zv​] the cross product is a vector

w=u×vw = u \times vw=u×v

where u×v=[yu∗zv–zu∗yv,zu∗xv–xu∗zv,xu∗yv–yu∗xv] u \times v = [y_u * z_v – z_u * y_v, z_u * x_v – x_u * z_v, x_u * y_v – y_u * x_v]u×v=[yu​∗zv​–zu​∗yv​,zu​∗xv​–xu​∗zv​,xu​∗yv​–yu​∗xv​]

There is absolutely no reason to memorize such a convoluted expression! The key point to appreciate is its geometric meaning.

Orthogonality

The result of this operation is a vector perpendicular to both inputs. So given three points in space, “A”, “B” and “C”, we can define the vectors u=B−Au = B - Au=B−A and v=C−Av = C - Av=C−A and compute n=u×vn = u \times vn=u×v. This vector is called the “normal” vector i.e. perpendicular to the plane spanned by uuu and vvv.

Practice

  • Use the dot product to verify that the cross product vector is perpendicular to both input vectors.

  • What is the result of one of the input vectors being the zero vector to the cross product vector?

Parallelism

If the input vectors are parallel with one another then the cross product is the zero vector. Mathematically parallelism is equivalent of one vector being a multiple of another in the scaling sense i.e. u=s∗vu = s * vu=s∗v. The result of a cross product being zero expresses the idea of infinite choices for selecting a perpendicular vector to the supplied input rather than the impossibility to finding one.

Practice

  • Construct two dependent vectors and verify using the vector length that their cross product is zero.

Directionality

Unlike other arithmetic operations, the order of multiplication is important: reversing the order, reverses the direction of the result i.e.

n=u×vn = u \times v n=u×v

v×u=−n v \times u = -nv×u=−n

We use the right or left hand fingers, with the index being “u”, the middle “v” and the thumb as “n” vectors to capture this concept. In the video below, notice how the normal vector flips direction when the point order viewed from the top switches from clockwise to counter-clockwise.

Practice

  • Construct a triangle and point floating about in the same plane. Compute all pairwise cross products between the triangles edges and vectors from each point to the floating point. What can we infer from the directions of the cross products about the point’s relationship to the triangle?

  • Construct a polygon and apply the cross product for each consecutive edge. Explain what we can conclude about their points by comparing shapes like a quadrilateral versus a dart or bow tie shape considering the direction of the point-wise cross products.

Computing Area

The magnitude of the cross product encodes the area of the parallelogram spanned by the two vectors or twice the size of the triangle spanned. The expression for area of triangle is thus concisely capture by ∣u×v∣/2|u \times v| / 2∣u×v∣/2 instead of the base∗height/2base * height / 2base∗height/2 which implies decomposition of the original triangle into an orthogonal triangle and projection just to measure its height etc.

Practice

  • Construct a closed polygon with five points i.e. an irregular pentagon and compute its area using the cross product.

  • Can the area of four-point bow tie shaped polygon be computed using the cross product rule? How about a dart shaped quadrilateral?

Projection

In as much the dot product “drops” dimensions i.e. expresses projection in the sense of perpendicular-to, the cross product “raises” a dimension i.e. expresses a notion of "unprojection" or lifting a perpendicular-from.

Practice

Orthonormalization

For geometric constructions it is very useful to work with orthogonal and unit length vectors triplets. This is because translations in each direction does not interfere with one another and defining the amount of travel is as simple as scaling the unit basis vectors. The process of constructing such vectors is known as orthonormalization.

Given two arbitrary non-parallel vectors uuu and www we can construct a normal nnn square to both using the cross product. By repeated application of cross product between uuu and nnn we can construct vector vvv such that now all uuu, vvv and www are orthogonal to one another. We typically normalize the vectors to form what is known as spatial basis [u^,v^,w^][\hat{u}, \hat{v}, \hat{w}][u^,v^,w^] or coordinate system or frame [o,u^,v^,w^][o, \hat{u}, \hat{v}, \hat{w}][o,u^,v^,w^].

Practice

  • Use the “plane from 3 points” component and observe its axes. It replicates the above demonstrated orthonormalization process.

  • Use the “construct plane” component and supply two non-orthogonal vectors. Verify that the plane’s axes are automatically orthonormalized by using the “deconstruct plane” component.

Explore the trigonometric form [] of the cross product and consider the effect of different values of the angle between the input vectors.

Given three points of an equilateral triangle, compute the centroid and raise a point such that it forms the fourth point of a regular tetrahedron [].

Construct a square and lift two points from its centre such that they describe a regular octahedron [].

>
>
>
24KB
3A_3_Cross_product.gh
Area of parallelogram
Drawing