Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 1-test-vec-to-coordinates
  • master
  • patch-1
3 results

Target

Select target project
  • jessica.estevesm/isc_physics
  • michael.elkharro/isc_physics
  • philippe.montando/isc_physics
  • william.rodrigue/isc_physics
  • orestis.malaspin/isc_physics
  • lucas.landrecy/isc_physics
  • jean.vouillam/isc_physics
  • alexandr.benzonan/isc_physics
  • farouq.obaly/isc_physics
  • richarda.tyarks/isc_physics
  • sasha.crockett/isc_physics
  • jeremy.meissner/isc_physics
  • tom.andrivet/isc_physics
  • elio.marconi/isc_physics
  • iliya.saroukha/isc_physics
  • arian.dervisha/isc_physics
16 results
Select Git revision
  • 1-test-vec-to-coordinates
  • master
  • patch-1
3 results
Show changes
Commits on Source (8)
......@@ -182,7 +182,7 @@ Dans le cadre de ce travail pratique, vous allez devoir implementer une simulati
Si toutefois vous décidiez de prendre ce squelette (excellente décision, je vous en félicite), une fois téléchargé et décompressé, vous devrez effectuer les actions suivantes :
1. Remplacer le fichier `skeleton/vec2/vec2.c` par celui que vous avez réalisé durant un précédent travail pratique.
2. Prendre connaissance des fichiers `skeleton/planet/planet.h` et `skeleton/main.c`. Ces fichiers contiennent des commentaires pour vous guider.
2. Prendre connaissance des fichiers `skeleton/celestial_body/celestial_body.h` et `skeleton/main.c`. Ces fichiers contiennent des commentaires pour vous guider.
3. Réaliser le travail pratique.
Ce travail est séparé en deux parties, qui valent respectivement 4.5 et 1.5 points (Pour un total de 6 (c'est dingue !!!)).
......
......@@ -5,11 +5,11 @@ CFLAGS:=-g -Ofast -Wall -Wextra -fsanitize=address -fsanitize=leak -std=gnu11
#The flags passed to the linker
LDFLAGS:=-lm -lSDL2
#Path to the lib Vec2
VPATH:=vec2 gfx planet
VPATH:=vec2 gfx celestial_body
main: main.o vec2.o gfx.o planet.o
main: main.o vec2.o gfx.o celestial_body.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
run_tests: tests
......@@ -18,7 +18,7 @@ run_tests: tests
tests: vec_tests.o vec2.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
planet.o: planet.h
celestial_body.o: celestial_body.h
vec2.o: vec2.h
......
#include "planet.h"
#include "celestial_body.h"
#include <stdlib.h>
#define G 6.67e-11
......
#ifndef _PLANET_H_
#define _PLANET_H_
#ifndef _CELESTIAL_BODY_H_
#define _CELESTIAL_BODY_H_
#include "../vec2/vec2.h"
#include "../gfx/gfx.h"
typedef struct _planet
typedef struct _celestial_body
{
double mass;
vec2 pos; // x(t)
vec2 prec_pos; // x(t - dt)
} planet_t;
} celestial_body_t;
typedef struct _system
{
planet_t star; // ex. The sun
celestial_body_t star; // ex. The sun
uint32_t nb_planets; // The number of orbiting planets
planet_t *planets; // An array of orbiting planets
celestial_body_t *planets; // An array of orbiting planets
} system_t;
// Those function are not mandatory to implement,
// it's rather a hint of what you should have.
planet_t create_planet(double mass, vec2 pos);
celestial_body_t create_celestial_body(double mass, vec2 pos);
system_t create_system(double delta_t);
void show_system(struct gfx_context_t *ctxt, system_t *system);
void update_system(system_t *system, double delta_t);
......
#include "gfx/gfx.h"
#include "vec2/vec2.h"
#include "planet/planet.h"
#include "celestial_body/celestial_body.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
......