Skip to content

Instantly share code, notes, and snippets.

@index333
Created November 3, 2017 05:29
--Ch.hs
module Ch (chlen,pitch) where
import Data.Complex
pitch = 12.7
p = pitch
chlen a b c = (l + f + r) * 2
where rf = pcr a
rr = pcr b
l' = rf - rr
l = sqrt(c ** 2 - l' ** 2)
th = atan (c / l')
sf = sirc a / 2
sr = sirc b / 2
f = sf * (pi - th) / pi
r = sr * th / pi
sirc = (p *)
rOfd = 7.8 / 2
yen = pi * 2
rd0 n | even n = (n,round (rd d))
| otherwise = (n,round (rd' d))
where d = fromIntegral n
rd n = pcd n - rOfd * 2
rd' n = let a = mkPolar m (pi/n/2)
b = mkPolar m pi
in dist a b
where m = pcr n-rOfd
dist a b = magnitude (a - b)
pcr n = d / sin t
where d = p / 2
t = pi / n
pcd n = pcr n * 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment