Skip to content

Instantly share code, notes, and snippets.

@joshsmith
Created November 10, 2012 06:43
Show Gist options
  • Select an option

  • Save joshsmith/4050209 to your computer and use it in GitHub Desktop.

Select an option

Save joshsmith/4050209 to your computer and use it in GitHub Desktop.
# Use CMC(2:1)
l = 2
c = 1
c1 = sqrt( (a1 ** 2) + (b1 ** 2) )
c2 = sqrt( (a2 ** 2) + (b2 ** 2) )
delta_l = l1 - l2
delta_a = a1 - a2
delta_b = b1 - b2
delta_c = c1 - c2
delta_h = sqrt( (delta_a ** 2) + (delta_b ** 2) - (delta_c ** 2) )
h1 = atan2(b1,a1) * 180 / PI
if (h1 < 0)
h1 += 360
elsif (h1 >= 360)
h1 -= 360
end
if (164 <= h1 || h1 <= 345)
t = ( 0.56 + (0.2 * cos(h1 + 168)).abs )
else
t = ( 0.36 + (0.4 * cos(h1 + 35)).abs )
end
if (l1 < 16)
sl = 0.511
elsif (l1 >= 16)
sl = (0.040975 * l1) / (1 + (0.01765 * l1))
end
f = sqrt( (c1 ** 4) / ( (c1 ** 4) + 1900 ) )
sc = ( (0.0638 * c1) / (1 + (0.0131 * c1)) ) + 0.638
sh = sc * ( (f * t) + 1 - f )
first = ( delta_l / ( l * sl ) ) ** 2
second = ( delta_c / ( c * sc ) ) ** 2
third = ( delta_h / sh ) ** 2
distance = sqrt( first + second + third )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment