Commit c734c1f9 authored by Mathys's avatar Mathys
Browse files

mise a jour du readme, du cli et diverses optimisations

parent b4368696
......@@ -5,7 +5,7 @@ import (
"project-particles/config"
"time"
"project-particles/Extension/Pictures"
"strconv"
)
// NewSystem est une fonction qui initialise un système de particules et le
......@@ -15,7 +15,7 @@ import (
// centre de l'écran.
func GenPart() Particle { // Crée une particule avec Px,Py comme position
rand.Seed(time.Now().UnixNano())
//rand.Seed(time.Now().UnixNano())
var PosX, PosY int = config.General.SpawnX, config.General.SpawnY
// Si le fichier de config le demande, la position des particules devient aléatoire
if config.General.RandomSpawn {
......@@ -41,13 +41,6 @@ func GenPart() Particle { // Crée une particule avec Px,Py comme position
}
}
func gettime()[]float64 {
t := time.Now()
a,_ := strconv.Atoi(t.String()[11:13])
b , _:= strconv.Atoi(t.String()[14:16])
c , _ := strconv.Atoi(t.String()[17:19])
return []float64{float64(a),float64(b),float64(c)}
}
// fonction NewSystem
func NewSystem() System {
// Initialise les variables et la seed de math/rand
......
......@@ -3,6 +3,8 @@ package particles
import (
"project-particles/config"
"math"
"strconv"
"time"
)
// Update mets à jour l'état du système de particules (c'est-à-dire l'état de
......@@ -90,6 +92,13 @@ func gravitepoint(p Particle) (Particle){
return p
}
func gettime()[]float64 {
t := time.Now()
a,_ := strconv.Atoi(t.String()[11:13])
b , _:= strconv.Atoi(t.String()[14:16])
c , _ := strconv.Atoi(t.String()[17:19])
return []float64{float64(a),float64(b),float64(c)}
}
func ClockUpdate(TabParticule []Particle) ([]Particle){
t := gettime()
......@@ -118,6 +127,29 @@ func ClockUpdate(TabParticule []Particle) ([]Particle){
}
return TabParticule
}
func grossire(p, o Particle)(a,b Particle){
a,b = p,o
b.Overflow = true
a.ScaleX , a.ScaleY = p.ScaleX + o.ScaleX/2 , p.ScaleY + o.ScaleY/2
a.PositionX -= o.ScaleX * 5/2
a.PositionY -= o.ScaleY * 5/2
return a,b
}
func colorise(p Particle, k int)(a Particle){
a = p
if k%3==0{
a.ColorBlue , a.ColorGreen = p.ColorBlue -0.1, p.ColorGreen -0.1
}
if k%3==1{
a.ColorRed , a.ColorGreen = p.ColorRed-0.1 , p.ColorGreen- 0.1
}
if k%3==2{
a.ColorRed , a.ColorBlue = p.ColorRed-0.1 , p.ColorBlue- 0.1
}
return a
}
func colision(TabParticule []Particle) ([]Particle){
for k:=0 ; k<len(TabParticule);k++{
for i:=k+1; i<len(TabParticule);i++{
......@@ -126,16 +158,12 @@ func colision(TabParticule []Particle) ([]Particle){
if math.Sqrt( math.Pow(xx,2) + math.Pow(yy,2) ) < TabParticule[i].ScaleX*5 + TabParticule[k].ScaleX*5{
if TabParticule[i].Overflow == false && TabParticule[k].Overflow == false{
if TabParticule[i].ScaleX <= TabParticule[k].ScaleX{
TabParticule[i].Overflow = true
TabParticule[k].ScaleX , TabParticule[k].ScaleY = TabParticule[k].ScaleX + TabParticule[i].ScaleX/2 , TabParticule[k].ScaleY + TabParticule[i].ScaleY/2
TabParticule[k].PositionX -= TabParticule[i].ScaleX * 5/2
TabParticule[k].PositionY -= TabParticule[i].ScaleY * 5/2
TabParticule[k], TabParticule[i] = grossire(TabParticule[k], TabParticule[i])
TabParticule[k] = colorise(TabParticule[k] , k)
}else{
TabParticule[k].Overflow = true
TabParticule[i].ScaleX , TabParticule[i].ScaleY = TabParticule[k].ScaleX/2 + TabParticule[i].ScaleX , TabParticule[k].ScaleY/2 + TabParticule[i].ScaleY
TabParticule[i].PositionX -= TabParticule[k].ScaleX * 5/2
TabParticule[i].PositionY -= TabParticule[k].ScaleY * 5/2
TabParticule[i], TabParticule[k] = grossire(TabParticule[i], TabParticule[k])
TabParticule[i] = colorise(TabParticule[i] , i)
}
}
}
......@@ -206,6 +234,7 @@ func cercle(p Particle) Particle {
}
}
}
p.Rotation +=0.02
return p
}
......
......@@ -155,7 +155,6 @@ func Test_Gravite(t *testing.T) {
config.General.SpeedLimit = []float64 {-1,1,-1,1}
Sys := NewSystem()
var OldSpdX,OldSpdY []float64
for i:=0; i
for i:=0; i < 60; i++ {
for j:=0; j < len(Sys.Content); j++ {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment