Unify matrix uniform assignment, move towards uniform block
This commit is contained in:
@@ -16,9 +16,9 @@ highDiagonalMesh
|
||||
-> Float -- ^ vertical distance between lines
|
||||
-> Picture
|
||||
highDiagonalMesh pa pb w d = setDepth (-0.2) $ pictures $
|
||||
(map (flip thickLine 3 . flat2) $ diagonalLinesRect pb pa w d (3*pi/4))
|
||||
map (flip thickLine 3 . flat2) (diagonalLinesRect pb pa w d (3*pi/4))
|
||||
++
|
||||
(map (flip thickLine 3 . flat2) $ diagonalLinesRect pb pc (negate h) d (pi/4))
|
||||
map (flip thickLine 3 . flat2) (diagonalLinesRect pb pc (negate h) d (pi/4))
|
||||
where
|
||||
pc = pb +.+ w *.* normalizeV (vNormal (pb -.- pa))
|
||||
h = dist pa pb
|
||||
@@ -42,7 +42,7 @@ diagonalLinesRect pa pb w d ang = zip lhsPoints $ map findDiPoint lhsPoints
|
||||
,intersectSegLine' pa pax p (p +.+ diVec)
|
||||
,intersectSegLine' pb pbx p (p +.+ diVec)
|
||||
]
|
||||
yN = d * 0.5 *.* (normalizeV $ pa -.- pb)
|
||||
yN = d * 0.5 *.* normalizeV (pa -.- pb)
|
||||
|
||||
highPipe :: Point2 -> Point2 -> Picture
|
||||
highPipe x y = pictures
|
||||
@@ -60,7 +60,7 @@ girderZ w x y = setDepth (-0.1) $ color red $ pictures $
|
||||
]
|
||||
++ map (flip thickLine 3 . flat2) ls
|
||||
where
|
||||
n = w *.* (normalizeV $ vNormal $ y -.- x)
|
||||
n = w *.* normalizeV (vNormal $ y -.- x)
|
||||
xb = x +.+ n
|
||||
yb = y +.+ n
|
||||
xt = x -.- n
|
||||
@@ -77,27 +77,27 @@ girderV col w x y = setDepth (-0.1) $ color col $ pictures $
|
||||
++ map (flip thickLine 3 . flat2) as'
|
||||
++ map (flip thickLine 3 . flat2) bs'
|
||||
where
|
||||
n = w *.* (normalizeV $ vNormal $ y -.- x)
|
||||
n = w *.* normalizeV (vNormal $ y -.- x)
|
||||
xb = x +.+ n
|
||||
yb = y +.+ n
|
||||
xt = x -.- n
|
||||
yt = y -.- n
|
||||
ps = divideLineExact (w*2) xb yb
|
||||
(as,_) = evenOddSplit ps
|
||||
f a = map (\p -> intersectSegLine' xt yt p (p +.+ (rotateV a n)))
|
||||
f a = map (\p -> intersectSegLine' xt yt p (p +.+ rotateV a n))
|
||||
as' = catMaybes $ zipWith (fmap . (,)) as $ f (pi/4) as
|
||||
bs' = catMaybes $ zipWith (fmap . (,)) as $ f (3*pi/4) as
|
||||
girder :: Color -> Float -> Point2 -> Point2 -> Picture
|
||||
girder col w x y = pictures $
|
||||
[ setDepth (-0.1) $ color col $ pictures $
|
||||
(setDepth (-0.1) $ color col $ pictures $
|
||||
[ thickLine [xt,yt] 3
|
||||
, thickLine [xb,yb] 3
|
||||
]
|
||||
++ map (flip thickLine 3 . flat2) ls
|
||||
]
|
||||
++ map (\p -> verticalPipe 1.5 col p 0 (-0.1)) [xb,xt,yb,yt]
|
||||
)
|
||||
: map (\p -> verticalPipe 1.5 col p 0 (-0.1)) [xb,xt,yb,yt]
|
||||
where
|
||||
n = w *.* (normalizeV $ vNormal $ y -.- x)
|
||||
n = w *.* normalizeV (vNormal $ y -.- x)
|
||||
xb = x +.+ n
|
||||
yb = y +.+ n
|
||||
xt = x -.- n
|
||||
|
||||
Reference in New Issue
Block a user