computational design + fabrication:...
TRANSCRIPT
![Page 1: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/1.jpg)
Computational Design + Fabrication: Geometry
Jonathan Bachrach
EECS UC Berkeley
September 1, 2015
![Page 2: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/2.jpg)
Today 1
who are you?trigonometrygeometrysolid geometrytools
![Page 3: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/3.jpg)
Who Are You? 2
nameundergraduate or graduatemajorpython programming?courses taken ( PL, graphics, geometry )cad tools?proficient in any shop tools?cnc tools?favorite project most proud ofwhy taking class?
![Page 4: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/4.jpg)
Reading 0 3
the future of design by lipson et alquestions
![Page 5: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/5.jpg)
Pythagoras’ Theorem 4
right angled triangle
a2 + b2 = c2 (1)
a
b
c
![Page 6: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/6.jpg)
Transcendentals 5
sinA = oppositehypotenuse = a
c
cosA = adjacenthypotenuse = b
c
tanA = oppositeadjacent =
ab = sinA
cosA
hypotenuse
adjacent
opposite
A
B
C
ca
b
![Page 7: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/7.jpg)
Vector 6
v = [a,b]magnitude = |v | =
√a2 + b2
direction
direction
magnitude
vector
![Page 8: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/8.jpg)
Vector Ops 7
normalizeaddscale
![Page 9: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/9.jpg)
Vector Normalize 8
unit vectorv = v/|v |
unitvector
v
length
= v / |v|
![Page 10: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/10.jpg)
Vector Add 9
w = u + v
u
v
u+v
![Page 11: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/11.jpg)
Vector Scale 10
w = s ∗ v
v
3 |v|
3v
![Page 12: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/12.jpg)
Vector Dot 11
w = u · vu · v = |u| × |v | × cos θdot product of vectors at right angle is zero
t
cos(t) * v
v
u
![Page 13: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/13.jpg)
Vector Cross 12
w = u × vu × v = |u||v | sin θnright hand rule: u = index finger, v = middle finger, w = thumb
a
b
a x b
![Page 14: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/14.jpg)
Vector Conversions 13
polar to cartesian: v = r [cos θ, sin θ]cartesian to polar: [r , θ] = [norm(v),atan2(v)]
![Page 15: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/15.jpg)
Point as Vector 14
interpreted as vector from zerosubtracting points forms vector
v = [a,b]
(a, b)
(0, 0)
![Page 16: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/16.jpg)
Line 15
infinitethrough two pointsparameterized by t
p
v
![Page 17: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/17.jpg)
Ray 16
one half of line bounded by point
p
v
![Page 18: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/18.jpg)
LineSegment 17
finite line bounded by points
p_0
p_1
![Page 19: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/19.jpg)
PolyLine 18
collection of lines segments connecting pointsopen and closedcollection of polylinesDXF, SVG
p_0
p_1
p_3
p_2
![Page 20: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/20.jpg)
Plane 19
n · (p − p0) = 0 (2)
point p0
normal ndot product interpretationintersect linenearest point
n
p p_0
![Page 21: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/21.jpg)
Polygon 20
closed polylineperimeterarea
concave convex
![Page 22: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/22.jpg)
Basic Polygons 21
trianglesquare
![Page 23: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/23.jpg)
Non Polygons 22
circlesquiggly
![Page 24: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/24.jpg)
Approximating Non-Polygons by Polygons 23
circleapproximation error
![Page 25: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/25.jpg)
Approximation Error 24
number of facetsanglefragment sizesquared area delta
![Page 26: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/26.jpg)
Hausdorff Distance 25
two polygons are close if every point in one is close to the othermax distance from one polygon to closest point in the othercould be computed using sampling
![Page 27: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/27.jpg)
Triangulation of Polygons 26
break polygon into neighboring triangleshow do we do this?what do we care about in triangulating?ear clipping – triangle with one edge insidefaster algorithms
![Page 28: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/28.jpg)
Polygon Area 27
clockwisesum area under successive pointsreverse sign if xi+1 < xi
how else?
+ -
![Page 29: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/29.jpg)
Polyhedra 28
collection of intersecting planesneighboring polygons called faces forming closedhow do we know its closed?
Rhombictriacontahedron by DTR Tetrahedron by Robert Webb’s Stella software
![Page 30: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/30.jpg)
Simple Polyhedra 29
tetrahedroncube
Tetrahedron by Robert Webb’s Stella software
![Page 31: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/31.jpg)
Non Polyhedra 30
spherecylinder
![Page 32: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/32.jpg)
Approximating Non Polyhedra with Polyhedra 31
spherecylinderapproximation erroradvantages?problems?
Planetary-Scale Terrain Composition – Kooima + Leigh + Johnson + Roberts + SubbaRao + DeFanti
![Page 33: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/33.jpg)
Mesh Datastructures 32
stl: faces with redundant pointsobj: points faces with point indices( winged mesh )
![Page 34: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/34.jpg)
Affine Transformations 33
translatescalerotate( shear )
![Page 35: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/35.jpg)
Translate 34
translation vector
![Page 36: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/36.jpg)
Scale 35
scaling from origin
![Page 37: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/37.jpg)
Rotate 36
rotation about origin
![Page 38: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/38.jpg)
Affine Transformation Matrices 37
2x23x3basic transformationscompositionextends to 3D
![Page 39: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/39.jpg)
2x2 Affine Transformation Matrices 38
∣∣∣∣x2y2
∣∣∣∣ = A×∣∣∣∣x1y1
∣∣∣∣+ B (3)
![Page 40: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/40.jpg)
2x2 Identity 39
A =
∣∣∣∣1 00 1
∣∣∣∣ ,B =
∣∣∣∣00∣∣∣∣ (4)
![Page 41: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/41.jpg)
2x2 Scaling 40
A =
∣∣∣∣sx 00 sy
∣∣∣∣ ,B =
∣∣∣∣00∣∣∣∣ (5)
![Page 42: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/42.jpg)
2x2 Rotation 41
A =
∣∣∣∣cos θ − sin θsin θ cos θ
∣∣∣∣ ,B =
∣∣∣∣00∣∣∣∣ (6)
![Page 43: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/43.jpg)
2x2 Translation 42
A =
∣∣∣∣0 00 0
∣∣∣∣ ,B =
∣∣∣∣txty∣∣∣∣ (7)
![Page 44: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/44.jpg)
Homogenous Coordinates 43
can write entire affine transformation in one matrixcan compute inverse of transformationaugment input vector with 1
∣∣∣∣∣∣x2y21
∣∣∣∣∣∣ =
∣∣∣∣∣∣a b txc d ty0 0 1
∣∣∣∣∣∣∣∣∣∣∣∣x1y11
∣∣∣∣∣∣ (8)
v2 = M × v1 (9)
![Page 45: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/45.jpg)
Composition 44
now can compose transformations using matrix multiplication
MA = MR ×MT (10)∣∣∣∣∣∣cos θ − sin θ txsin θ cos θ ty
0 0 1
∣∣∣∣∣∣ =
∣∣∣∣∣∣cos θ − sin θ 0sin θ cos θ 0
0 0 1
∣∣∣∣∣∣×∣∣∣∣∣∣1 0 tx0 1 ty0 0 1
∣∣∣∣∣∣ (11)
![Page 46: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/46.jpg)
Solid Geometry 45
3D shapes with volumeset opsoffset, convex hull, minkowski sum2D to 3D3D to 2D
![Page 47: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/47.jpg)
Set Ops 46
interpretation of solids as sets of pointsops: union, intersection, difference
![Page 48: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/48.jpg)
Union 47
sometimes written using addition
A
B
A + B
![Page 49: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/49.jpg)
Intersection 48
sometimes written using multiplication
A
B
A * B
![Page 50: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/50.jpg)
Difference 49
sometimes written using subtraction
A
B
A - B
![Page 51: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/51.jpg)
Offset 50
amountchamferhow to implement?
![Page 52: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/52.jpg)
Convex Hull 51
definitionargumentsexamples
![Page 53: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/53.jpg)
Minkowski Sum 52
definitionargumentsexamples
![Page 54: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/54.jpg)
2D to 3D 53
ExtrusionLathe
![Page 55: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/55.jpg)
Extrusion 54
heightscalarotate
![Page 56: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/56.jpg)
Lathe 55
must translate off center
![Page 57: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/57.jpg)
3D to 2D 56
shadowslice
![Page 58: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/58.jpg)
Constructive Solid Geometry (CSG) 57
picture by N.Goodger
![Page 59: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/59.jpg)
CSG Hierarchy 58
chang + woodbury
![Page 60: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/60.jpg)
CSG Data Structure 59
![Page 61: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/61.jpg)
OpenSCAD Cheatsheet 60outputs stlproceduralbased on CGAL nef polyhedra
www.openscad.org
![Page 62: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/62.jpg)
2D Primitives 61
circle(radius | d=diameter)
square(size,center)
square([width,height],center)
polygon([points])
polygon([points],[paths])
text(t, size, font, halign, valign, spacing, direction, language, script)
square(center=true);
![Page 63: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/63.jpg)
2D to 3D Extrusion 62
linear_extrude(height,center,convexity,twist,slices)
rotate_extrude(convexity)
linear_extrude(height = 2) square(center=true);
![Page 64: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/64.jpg)
3D Primitives 63
sphere(radius | d=diameter)
cube(size)
cube([width,depth,height])
cylinder(h,r|d,center)
cylinder(h,r1|d1,r2|d2,center)
polyhedron(points, triangles, convexity)
cube(r = 1, center = true);
![Page 65: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/65.jpg)
Transformations 64
translate([x,y,z])
rotate([x,y,z])
scale([x,y,z])
resize([x,y,z],auto)
color([r,g,b,a])
translate([0, 0, 1.5]) cube(r = 1, center = true);
![Page 66: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/66.jpg)
Operations 65
mirror([x,y,z])
offset(r|delta,chamfer)
hull()
minkowski()
hull() {
translate([15,10,0]) circle(10);
circle(10);
}
![Page 67: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/67.jpg)
CSG 66
union()
difference()
intersection()
difference() {
cylinder (h = 4, r=1, center = true, $fn=100);
rotate ([90,0,0]) cylinder (h = 4, r=0.9, center = true, $fn=100);
}
![Page 68: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/68.jpg)
Math 67
sin
cos
tan
acos
asin
atan
atan2
floor
round
ceil
abs
sign
ln
len
let
log
pow
sqrt
exp
rands
min
max
![Page 69: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/69.jpg)
loops 68
for (i = [start:end]) { ... }
for (i = [start:step:end]) { ... }
for (i = [...,...,...]) { ... }
intersection_for(i = [start:end]) { ... }
intersection_for(i = [start:step:end]) { ... }
intersection_for(i = [...,...,...]) { ... }
for(i=[0:36])
translate([i*10,0,0])
cylinder(r=5,h=cos(i*10)*50+60);
![Page 70: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/70.jpg)
variable 69
var = value;
assign (...) { ... }
for (i = [10:50]) {
angle = i*360/20;
distance = i*10;
r = i*2;
rotate(angle, [1, 0, 0])
translate([0, distance, 0])
sphere(r = r);
}
![Page 71: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/71.jpg)
conditionals 70
if (...) { ... }
if (x > y) {
cube(size = 1, center = false);
} else {
cube(size = 2, center = true);
}
![Page 72: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/72.jpg)
modules / functions 71
module name(...) { ... }
name();
function name(...) = ...
name();
module hole(distance, rot, size) {
rotate(a = rot, v = [1, 0, 0]) {
translate([0, distance, 0]) {
cylinder(r = size, h = 100, center = true);
}
}
}
hole(0, 90, 10);
![Page 73: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/73.jpg)
next time 72
Our software stackCNC machines and manufacturing
![Page 74: Computational Design + Fabrication: Geometryinst.eecs.berkeley.edu/~cs194-28/fa15/lectures/geometry.pdfComputational Design + Fabrication: Geometry Jonathan Bachrach EECS UC Berkeley](https://reader031.vdocument.in/reader031/viewer/2022022517/5b057fb87f8b9ac33f8b6d7f/html5/thumbnails/74.jpg)
Referencers 73
ILM Math Library – http://www.openexr.com
Open SCAD – http://www.openscad.org