Uploading previous work
This commit is contained in:
parent
58ba643f81
commit
96b00a71c0
55
1axis.go
Normal file
55
1axis.go
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
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)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
46
2axis.go
Normal file
46
2axis.go
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SpaceObj struct {
|
||||||
|
x int64 // Pos x
|
||||||
|
y int64 // Pos y
|
||||||
|
z int64 // Pos z
|
||||||
|
vx float64 // Velocity x (mm)
|
||||||
|
vy float64 // Velocity y (mm)
|
||||||
|
vz float64 // Velocity z (mm)
|
||||||
|
m int64 // mass (kg)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Force struct {
|
||||||
|
x int64
|
||||||
|
y int64
|
||||||
|
z int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func calcAcceleration(m int64, f int64) float64 {
|
||||||
|
return float64(f) / float64(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
user := SpaceObj{0, 0, 0, 0, 0, 0, 52}
|
||||||
|
vectors := []Force{{1, 0, 0}, {0, 1, 0}, {-1, 0, 0}, {-1, -1, 0}, {1, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 1, 0}, {1, 0, 0}, {0, 0, 0}, {0, 0, 0}}
|
||||||
|
|
||||||
|
for i, f := range vectors {
|
||||||
|
fmt.Printf("Frame: %d; Vector: %d %d %d\n", i, f.x, f.y, f.z)
|
||||||
|
user.vx = user.vx + calcAcceleration(user.m, f.x)
|
||||||
|
user.vy = user.vy + calcAcceleration(user.m, f.y)
|
||||||
|
fmt.Printf(" velocity: %f %f %f (m/s)\n", user.vx, user.vy, user.vz)
|
||||||
|
|
||||||
|
user.x = user.x + int64(user.vx*1000)
|
||||||
|
user.y = user.y + int64(user.vy*1000)
|
||||||
|
|
||||||
|
fmt.Printf(" Pos: %d x %d x %d\n", user.x, user.y, user.z)
|
||||||
|
time.Sleep((1 * time.Second))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
51
3axis.go
Normal file
51
3axis.go
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SpaceObj struct {
|
||||||
|
x int64 // Pos x
|
||||||
|
y int64 // Pos y
|
||||||
|
z int64 // Pos z
|
||||||
|
vx float64 // Velocity x (mm)
|
||||||
|
vy float64 // Velocity y (mm)
|
||||||
|
vz float64 // Velocity z (mm)
|
||||||
|
m int64 // mass (kg)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Force struct {
|
||||||
|
x int64
|
||||||
|
y int64
|
||||||
|
z int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func calcAcceleration(m int64, f int64) float64 {
|
||||||
|
return float64(f) / float64(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
user := SpaceObj{0, 0, 0, 0, 0, 0, 52}
|
||||||
|
vectors := []Force{{1, 0, -1}, {0, 1, 0}, {-1, 0, 0}, {-1, -1, -1}, {1, 0, 0}, {1, 0, 0}, {0, 1, -1}, {0, 1, 0}, {1, 0, 0}, {0, 0, -1}, {0, 0, 0}}
|
||||||
|
|
||||||
|
for i, f := range vectors {
|
||||||
|
fmt.Printf("Frame: %d; Vector: %d %d %d\n", i, f.x, f.y, f.z)
|
||||||
|
|
||||||
|
user.vx = user.vx + calcAcceleration(user.m, f.x)
|
||||||
|
user.vy = user.vy + calcAcceleration(user.m, f.y)
|
||||||
|
user.vz = user.vy + calcAcceleration(user.m, f.z)
|
||||||
|
|
||||||
|
fmt.Printf(" velocity: %f %f %f (m/s)\n", user.vx, user.vy, user.vz)
|
||||||
|
|
||||||
|
user.x = user.x + int64(user.vx*1000)
|
||||||
|
user.y = user.y + int64(user.vy*1000)
|
||||||
|
user.z = user.z + int64(user.vz*1000)
|
||||||
|
|
||||||
|
fmt.Printf(" Pos: %d x %d x %d\n", user.x, user.y, user.z)
|
||||||
|
|
||||||
|
time.Sleep((1 * time.Second))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
3
old_go_mod
Normal file
3
old_go_mod
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module git.sr.ht/~ligthert/Massdriver
|
||||||
|
|
||||||
|
go 1.19
|
Loading…
x
Reference in New Issue
Block a user