mirror of
https://github.com/Haskell-Things/ImplicitCAD.git
synced 2024-09-17 16:08:01 +03:00
be a little more explicit, and use applicative more.
This commit is contained in:
parent
57784d24fe
commit
8528cc416f
@ -1,7 +1,9 @@
|
|||||||
-- Example 17, pulled from our benchmarking suite.
|
-- Example 17, pulled from our benchmarking suite.
|
||||||
|
import Prelude ((<$>), ($), zip3, fmap, fromIntegral, (*), (/))
|
||||||
import Graphics.Implicit (union, translate, rect3R, writeSTL)
|
import Graphics.Implicit (union, translate, rect3R, writeSTL)
|
||||||
import Graphics.Implicit.Definitions (Fastℕ, ℝ, ℝ3, SymbolicObj3)
|
import Graphics.Implicit.Definitions (Fastℕ, ℝ, ℝ3, SymbolicObj3)
|
||||||
|
|
||||||
|
|
||||||
default (Fastℕ, ℝ)
|
default (Fastℕ, ℝ)
|
||||||
|
|
||||||
object2 :: SymbolicObj3
|
object2 :: SymbolicObj3
|
||||||
@ -10,12 +12,13 @@ object2 = squarePipe (10,10,10) 1 100
|
|||||||
squarePipe :: ℝ3 -> ℝ -> ℝ -> SymbolicObj3
|
squarePipe :: ℝ3 -> ℝ -> ℝ -> SymbolicObj3
|
||||||
squarePipe (x,y,z) diameter precision =
|
squarePipe (x,y,z) diameter precision =
|
||||||
union
|
union
|
||||||
$ fmap (\start-> translate start
|
$ ((\start-> translate start
|
||||||
$ rect3R 0 (0,0,0) (diameter,diameter,diameter)
|
$ rect3R 0 (0,0,0) (diameter,diameter,diameter)
|
||||||
)
|
)
|
||||||
$ zip3 (fmap (\n->(fromIntegral n/precision)*x) [0..100])
|
<$>
|
||||||
|
zip3 (fmap (\n->(fromIntegral n/precision)*x) [0..100])
|
||||||
(fmap (\n->(fromIntegral n/precision)*y) [0..100])
|
(fmap (\n->(fromIntegral n/precision)*y) [0..100])
|
||||||
(fmap (\n->(fromIntegral n/precision)*z) [0..100])
|
(fmap (\n->(fromIntegral n/precision)*z) [0..100]))
|
||||||
|
|
||||||
main = writeSTL 1 "example17.stl" object2
|
main = writeSTL 1 "example17.stl" object2
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user