@@ -13,19 +13,19 @@ All vectors are in newton.
1313> m = 2
1414> alpha = 30
1515>
16- > unit_normal :: Double -> Vector2
16+ > unit_normal :: Double -> Vector2 Double
1717> unit_normal a = V2 (cos a) (sin a)
1818>
19- > f_l_ :: Vector2 -> Angle -> Vector2
19+ > f_l_ :: Vector2 Double -> Angle -> Vector2 Double
2020> f_l_ fa a = scale ((magnitude fa) * (cos a)) (unit_normal (a- (pi / 2 )))
2121>
22- > fn :: Vector2 -> Angle -> Vector2
22+ > fn :: Vector2 Double -> Angle -> Vector2 Double
2323> fn fa a = negate (f_l_ fa a)
2424
2525Frictionfree incline:
2626
2727
28- > fr :: Vector2 -> Angle -> Vector2
28+ > fr :: Vector2 Double -> Angle -> Vector2 Double
2929> fr fa a = (fn fa a) + fa
3030
3131
@@ -99,29 +99,29 @@ We have the normal force and only needs the constants.
9999
100100The current speed does not affect the friction. However F*M = Nm = work = J -> racer cars burn tires.
101101
102- > motscalar :: FricConst -> Vector2 -> Scalar
102+ > motscalar :: FricConst -> Vector2 Double -> Scalar
103103> motscalar u f = u * (magnitude f)
104104
105105Från en rörelse eller vekt, fixa komplementet
106106
107107
108- > enh_vekt :: Vector2 -> Vector2
108+ > enh_vekt :: Vector2 Double -> Vector2 Double
109109> enh_vekt v | magnitude v == 0 = (V2 0 0 )
110110> | otherwise = scale (1 / (magnitude v)) v
111111>
112112>
113- > motkrafts :: FricConst -> Scalar -> Vector2 -> Vector2
113+ > motkrafts :: FricConst -> Scalar -> Vector2 Double -> Vector2 Double
114114> motkrafts u s v = scale (u * s) (negate (enh_vekt v))
115115>
116- > motkraftv :: FricConst -> Vector2 -> Vector2 -> Vector2
116+ > motkraftv :: FricConst -> Vector2 Double -> Vector2 Double -> Vector2 Double
117117> motkraftv u n v = scale (u * (magnitude n)) (negate (enh_vekt v))
118118
119119Now we just need to sum the force vectors:
120120
121- > fru :: Vector2 -> Angle -> FricConst -> Vector2
121+ > fru :: Vector2 Double -> Angle -> FricConst -> Vector2 Double
122122> fru fa a u = (fr fa a) + (motkraftv u (fn fa a) (fr fa a))
123123>
124- > fru' :: Vector2 -> Angle -> FricConst -> Vector2
124+ > fru' :: Vector2 Double -> Angle -> FricConst -> Vector2 Double
125125> fru' fa a u = (motkraftv u (fn fa a) (fr fa a))
126126
127127
0 commit comments