56 lines
869 B
Go
56 lines
869 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// Calculate the velocity (force/mass)
|
|
func calcVelocity(m int64, f int64) float64 {
|
|
|
|
//fmt.Println(float64(f) / float64(m))
|
|
|
|
acceleration := float64(f) / float64(m)
|
|
return acceleration
|
|
}
|
|
|
|
func main() {
|
|
|
|
// Block center (in mm)
|
|
var x int64
|
|
var y int64
|
|
var z int64
|
|
|
|
// Velocity (mm/s)
|
|
var v float64
|
|
|
|
// Block mass (in kg)
|
|
var mass int64
|
|
|
|
// Force (Newton)
|
|
//var force int
|
|
|
|
// Initialize values
|
|
x = 0
|
|
y = 0
|
|
z = 0
|
|
v = 0
|
|
mass = 24
|
|
//force = 10
|
|
|
|
// Array of force applied
|
|
force := []int{0, -1, -1, -2, -1, -1, 0, 0, 0, 0, 0}
|
|
|
|
for i, f := range force {
|
|
|
|
fmt.Printf("Gonna divide %d by %d\n", f, mass)
|
|
v = v + calcVelocity(mass, int64(f))
|
|
fmt.Printf("Frame %d: velocity: %f (m/s)\n", i, v)
|
|
x = x + int64(v*1000)
|
|
fmt.Printf(" Pos: %d x %d x %d\n", x, y, z)
|
|
time.Sleep(1 * time.Second)
|
|
|
|
}
|
|
|
|
}
|