1axis.go 869 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. // Calculate the velocity (force/mass)
  7. func calcVelocity(m int64, f int64) float64 {
  8. //fmt.Println(float64(f) / float64(m))
  9. acceleration := float64(f) / float64(m)
  10. return acceleration
  11. }
  12. func main() {
  13. // Block center (in mm)
  14. var x int64
  15. var y int64
  16. var z int64
  17. // Velocity (mm/s)
  18. var v float64
  19. // Block mass (in kg)
  20. var mass int64
  21. // Force (Newton)
  22. //var force int
  23. // Initialize values
  24. x = 0
  25. y = 0
  26. z = 0
  27. v = 0
  28. mass = 24
  29. //force = 10
  30. // Array of force applied
  31. force := []int{0, -1, -1, -2, -1, -1, 0, 0, 0, 0, 0}
  32. for i, f := range force {
  33. fmt.Printf("Gonna divide %d by %d\n", f, mass)
  34. v = v + calcVelocity(mass, int64(f))
  35. fmt.Printf("Frame %d: velocity: %f (m/s)\n", i, v)
  36. x = x + int64(v*1000)
  37. fmt.Printf(" Pos: %d x %d x %d\n", x, y, z)
  38. time.Sleep(1 * time.Second)
  39. }
  40. }