MassDriver/1axis.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)
}
}