Programmation créative – Les vecteurs

Slides:



Advertisements
Présentations similaires
Programmation créative – Les vecteurs
Advertisements

Programmation créative – Les vecteurs
Programmation créative – Les vecteurs
PROCESSING Semaine 03. PLAN DE LEÇON Interaction avec un programme Gestion de la souris Gestion du clavier.
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Marlène Côté et Christèle Charbonneau Thème: Mathématiques et univers social Les élèves seront amenés à effectuer des additions et des soustractions, de.
TP 7 : UNE PROPRIÉTÉ DES ONDES, LA DIFFRACTION BUSQUET Stéphane LENNE Karl-Eric TS Physique-Chimie.
Programmation créative Semaine 03. Agenda de leçon  Rotation d’un sprite  Modifier la couleur d’un sprite (lutin)  Son et musique  Souris  Glisser.
Quantité de mouvement Un solide de masse m se déplace à la vitesse linéaire v. On appelle quantité de mouvement le produit m.v q = m.v.
Semaine 01 La programmation créative Introduction.
Cours PRODUIT SCALAIRE ET CALCUL D’ANGLES Dimitri Zuchowski et Marc-Élie Lapointe.
SITUATION DE REFERENCE
Exploitation de logiciels :
Environnement de développement des BD
Les outils de sélection Cours préparé par l’enseignante Wafa Bourkhis.
Multiplier, diviser des nombres relatifs
Pierre Joli Cours de Mathématique Pierre Joli
L’opération de multiplication
Scratch Partie 03 Version A16.
Programme Robot Aspirateur
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Les notions de classe et d'objet
Thème 2 : Lois et modèles.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Javadoc et débogueur Semaine 03 Version A17.
Commande du mini-robot
ENREGISTREMENT DU MOUVEMENT DU CENTRE D’INERTIE D’UN PALET SUR UN PLAN HORIZONTAL, SANS FROTTEMENT ET SOUMIS A L’ACTION D’UN RESSORT Données : Masse du.
Principes de programmation (suite)
CALCUL MENTAL SÉRIE 2.
Dimitri Zuchowski et Marc-Élie Lapointe
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Progressions calcul CM
Précision d'une mesure et chiffres significatifs
Présentation multimédia avec open office
Programmation Numération Compétences visées Période
Javadoc et débogueur Semaine 03 Version A16.
Chapitre 2 Vecteurs et Repérage dans le plan
Tableaux à plusieurs dimensions en langage C
CINEMATIQUE DES SOLIDES Chap 3: Mouvement plan. Un solide est en mouvement plan lorsque tous les points de celui-ci se déplacent dans des plans parallèles.
CALCUL MENTAL SÉRIE 4.
Chapitre 7: L’algèbre des vecteurs
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
L’outil Processing pour de la programmation créative
Difficultés de programmation
2.2 PRODUIT SCALAIRE ET CALCUL D’ANGLES
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Structure D’une Base De Données Relationnelle
Modélisation avec UML 2.0 Partie II Diagramme de classes.
GRAPHISME PAR ORDINATEUR
La cinématique En physique, la cinématique (du grec kinêma, le mouvement) est l'étude des mouvements, indépendamment des causes qui les produisent.
Calcul Scientifique Initiation à SCILB
ACP Analyse en Composantes Principales
Points essentiels Cinématique; Position; Déplacement; Vitesse moyenne; Équation d’un mouvement rectiligne uniforme.
Cours de physique générale I Ph 11
Thème 2 : Sports et sciences
Jeux de calcul mental.
Jeux de calcul mental.
Produit vectoriel Montage préparé par : André Ross
Leçon Les Forces N°1 1. Rôle des forces
Jeux de calcul mental.
Flowchart Itération Cours 04.
1/16 CINEMATIQUE 1) Cinématique du point 2) Dérivation vectorielle.
Passage primaire-secondaire
Tableau de bord d’un système de recommandation
Mathématiques – algorithmique – jeux vidéos
Programmation Maths CM2
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Chapitre P4 : Mouvement d’un solide indéformable I) Quelques rappels de seconde : 1)Nécessité d’un référentielNécessité d’un référentiel 2)TrajectoireTrajectoire.
La programmation dynamique
Transcription de la présentation:

Programmation créative – Les vecteurs Processing Programmation créative – Les vecteurs

Plan de leçon Crash course sur Processing (20 min) Voir PPT « GWC - Processing Semaine 07 – Semaine 01 » Distribution aléatoire Vecteurs

Processing Processing est un environnement de développement spécialisé dans la programmation créative Il permet de programmer principalement en Java L’environnement est très simplifié, on est loin de Visual Studio!

Processing : Interface Débogage Exécution et arrêt Gestion des classes Chaque classe est dans un onglet Boucle à 60 FPS

Processing : Constantes Constance Description height, width Hauteur et largeur de la fenêtre d’exécution mouseX, mouseY, pmouseX, pmouseY Position de la souris et position précédente de la souris mouseButton LEFT | RIGHT | CENTER mousePressed Vrai si bouton appuyé keyPressed Vrai si touche appuyée key La valeur ASCII des touches appuyées keyCode Permet de vérifier si les touches spéciales tel que les flèches, ALT, CONTROL et SHIFT

Exercice À l’aide de Processing, faites déplacer une ellipse qui rebondit sur les bords de la fenêtre

Vecteur : définition Le terme vecteur peut signifier plusieurs choses dépendant du contexte En biologie : Décrit un organisme qui transmet une infection d’un hôte à un autre En programmation : Décrit une structure de tableau de données En mathématique, un vecteur est un concept permettant de représenter une longueur (magnitude) et une direction Longueur  Magnitude

Vecteur : utilité Dans le monde des jeux vidéo, réalité virtuelle ou autre simulation, les vecteurs sont utilisés partout C’est une connaissance fondamentale à la programmation multimédia C’est un bloc de construction nécessaire pour toute application ayant des implications mathématiques

Vecteur : exemple À votre niveau (3e année informatique), vous avez sûrement déjà fait une balle qui rebondit sur les murs Peut-être l’avez-vous fait sans vecteur avec un code qui ressemblait à celui-ci

Vecteur : exemple Ce que l’on remarque est l’utilisation de plusieurs variables X et Y similaires Position X et Y Vitesse X et Y Une des complications est la gestion de toutes ces variables Imaginez maintenant que vous devez gérer l’accélération, la position d’une cible, le vent et la friction Quelles seraient les variables probables? Utilisation de deux variables dans chacun des cas Dans un monde 3D ce serait 3 variables…

Vecteur : exemple float x; float y; Vecteur location; float xSpeed; float ySpeed; Vecteur speed; On simplifie le code en utilisant les vecteurs.

Vecteur : classe Il faut se construire une classe Vecteur pour faciliter le travail Dans cette classe, on y retrouve les propriétés X et Y en float On y retrouve au minimum une méthode pour additionner un vecteur à l’objet vecteur ainsi que la même méthode surchargée qui acceptera les paramètres X et Y

Vecteur : déplacement Pour simuler du mouvement à l’aide des vecteurs, il faut utiliser la translation Le mouvement est un déplacement dans le temps La vitesse représente un déplacement dans le temps La vitesse peut être représentée par un vecteur Le déplacement est une distance dans une unité donnée Exemple : location = new PVector (50, 50); vitesse = new PVector (1, 1); location.add(vitesse)

Exercice Créez une classe PVector avec les propriétés X et Y ainsi qu’un méthode qui additionne les vecteurs Améliorez le premier exercice pour utiliser les vecteurs pour déplacer l’image

Vecteur : opérations Soustraction Multiplication par un scalaire Idem que l’addition Multiplication par un scalaire On multiplie pour chacun des composants du vecteur par une valeur scalaire Division par un scalaire Idem que la multiplication Magnitude La magnitude est la longueur du vecteur en utilisant le théorème de Pythagore Normalisation Ramène le vecteur à une longueur de 1 unité On divise le vecteur par sa longueur

Vecteur : accélération L’accélération est le taux de variation de la vitesse En programmation, on additionne l’accélération à la vitesse Exemple acceleration = new PVector (1, 1); vitesse = new PVector (0, 0); vitesse.add (acceleration); location.add (vitesse);

Vecteur : autres opérations Dans un jeu, on limite souvent les vitesses Pour limiter les vitesses, on ajoute une méthode limite la longueur d’un vecteur L’algorithme est le suivant Si vecteur.longueur > max vecteur.normalise() // On le met à une longueur de 1 unité vecteur.mult(max) Fin si

Vecteur : trajectoire À chaque fois que l’on désire calculer une trajectoire, il faut calculer la magnitude et la direction Prenons l’exemple où l’on désire que notre objet se déplace vers la souris Calculons la direction Celle-ci est la distance entre le X et Y de l’objet et le X et Y de la souris PVector souris = new PVector (mouseX, mouseY); PVector dir = PVector.sub(location, souris);

Vecteur : trajectoire Nous avons maintenant le vecteur qui pointe directement à l’emplacement de la souris Si nous additionnons la direction à la position l’objet apparaîtrait immédiatement à la souris et ce n’est pas l’effet désiré Ce que l’on doit faire, c’est de décider à quelle vitesse l’objet doit se rendre à la souris Pour ce faire, on normalisera le vecteur pour ensuite le multiplier par une valeur qui déterminera sa vitesse en unité Pour finaliser, on applique ce vecteur à l’accélération

Exercices Modifiez la classe PVector pour avoir toutes les opérations mentionnées dans les diapositives précédentes Ajoutez une méthode statique qui additionne deux vecteurs et qui retourne un nouveau vecteur Exemple : PVector v = PVector.add(vitesse, acceleration) Ajoutez une méthode statique qui retourne un vecteur normalisé aléatoire Modifiez le programme principal pour que lorsque l’utilisateur appuie sur une flèche, l’image accélère dans la direction de la flèche

Exercice Faites un projet où une image (cible, balle, etc.) poursuit la souris Essayer avec différentes vitesses

Références http://natureofcode.com/book/chapter-1-vectors/