COS 126 - PowerPoint PPT Presentation

About This Presentation
Title:

COS 126

Description:

Traverse image. Dark pixel mark as visited, continue. Light pixel create new bead, call dfs ... Output distance traversed by all beads for each time-step ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 15
Provided by: asto3
Category:
Tags: cos | traverse

less

Transcript and Presenter's Notes

Title: COS 126


1
COS 126 Atomic Theory of Matter
2
Atomic Theory Overview
  • Brownian Motion
  • Random collision of molecules
  • Displacement over time fits a Gaussian
    distribution

3
Atomic Theory Overview
  • Avogadros Number
  • Number of atoms needed to equal substances atomic
    mass in grams
  • NA atoms of Carbon-12 12 grams
  • Can calculate from Brownian Motion
  • Variance of Gaussian distribution is a function
    of resistance in water, number of molecules

4
Bead.java
  • Represent particles (beads) in water
  • API
  • public Bead()
  • public void add(int i, int j)
  • public int mass() // number of pixels
  • public double distanceTo(Bead b) // from center
    (average)
  • public String toString()
  • Only need 3 values to efficiently store
  • Thoroughly test (simple main)

5
BeadFinder.java
  • Locate all beads in a given image
  • API
  • public BeadFinder(Picture picture, double
    threshold)
  • Calculate luminance (see Luminance.java, 3.1)
  • Count pixels with at luminance gt threshold
  • Find beads with DFS (see Percolation.java, 2.4)
  • The hard part, next slide
  • public Bead getBeads(int minSize)
  • Returns all beads with at least minSize pixels
  • Array must be of size equal to number of beads

6
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

7
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

8
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

9
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

10
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

11
Bead Finder - Depth First Search
  • Use boolean array to mark visited
  • Traverse image
  • Dark pixel mark as visited, continue
  • Light pixel create new bead, call dfs
  • DFS algorithm
  • If pixel out-of-bounds, return
  • If pixel has been visited, return
  • If pixel is dark, mark return
  • Add pixel to current bead, mark as visited
  • Recursively visit up, down, left, right

12
BeadTracker.java
  • Track beads between successive images
  • Single main function
  • Take in a series of images
  • Output distance traversed by all beads for each
    time-step
  • For each bead found at time t1, find closest
    bead at time t and calculate distance
  • Not the other way around!
  • Dont include if distance gt 25 pixels (new bead)

13
Avogadro.java
  • Analyze Brownian motion of all calculated
    displacements
  • Lots of crazy formulas, all given, pretty
    straightforward
  • Be careful about units in the math, convert
    pixels to meters, etc.

14
Random Thoughts
  • BeadTracker and Avogadro are separate clients,
    must recompile both
  • Can still do Avogadro without other parts
    working, use sample input
  • Only keep at most two pictures open at a time
    (run out of memory otherwise)
  • Output format - System.out.printf()
  • "6.3f" -gt _2.354
  • "10.4e" -gt 1.2535e-23
Write a Comment
User Comments (0)
About PowerShow.com