Source: Scratch Wiki en français


Les mouvements sur Scratch


Cette catégorie traite des mouvements sur Scratch.

Description

Une bonne partie d'un projet scratch est visuelle et, souvent, est basée sur le mouvement.
Vous trouverez dans cette catégorie toutes les pages liées au mouvement sur Scratch.

Les Mouvements

Un mouvement est le fait d'effectuer une transformation (symétrie, rotation, translation, …) mathématique sur un objet numérique.

Exemples de mouvements déplacement ; rotation.

Il y a deux types de mouvements sur Scratch : les déplacements et les rotations.

Bien sûr, les deux peuvent être combinés. Chaque mouvement est constitué de différentes transformations :

  • Pour les déplacements
    • Déplacement manuel (pour lequel on ne peut pas insérer un programme dans le même empilement)
    • Déplacement à vitesse constante
    • Déplacement à vitesse variable


Les 3 déplacements avec Gobo :
• Manuel (une ligne)
• À vitesse constante (des points à intervalle régulier)
• À vitesse variable (des points à intervalle irrégulier)
  • Pour les rotations
    • Rotation manuelle (pour laquelle on ne peut pas insérer un programme dans le même empilement)
    • Rotation à vitesse constante
    • Rotation à vitesse variable


Les 3 rotations avec Gobo :
• Manuelle (avant, après)
• À vitesse constante (des traits à intervalle régulier)
• À vitesse variable (des traits à intervalle irrégulier)

Cependant, il est impossible d'exécuter différentes versions du même mouvement en même temps et dans un même empilement de bloc.

Mouvements et coordonnées

└─ Article principal : Coordonnées Les coordonnées sur Scratch


Lors d'un déplacement, les coordonnées du sprite changent. Les coordonnées d'un sprite sont stockées dans les blocs dédiés (abscisse x et ordonnée y).

Mouvements et rotations

└─ Article principal : Direction et rotation La direction et les rotations


Lord d'une rotation, la direction du sprite change. La direction est stocké dans le bloc direction.

Le cas des blocs glisser en () secondes à x:() y:() & glisser en () secondes à ( v)

Les blocs :

produisent des mouvements direct. Et oui, on ne peut pas placer de programme pendant l’exécution du bloc, du moins pas directement.


Quelques exemples de code pour réaliser ces différents mouvements. Il y a bien sûr plusieurs possibilités.

Réaliser un mouvement direct

Déplacement

quand @greenFlag est cliqué
aller à x:(0) y:(0)

Rotation

quand @greenFlag est cliqué
s'orienter à (90)

Réaliser un mouvement glissé

Déplacement

répéter (10) fois {
avancer de (10) pas
}@loopArrow::control

Rotation

répéter (10) fois {
tourner @turnRight de (10) degrés
}@loopArrow::control

Réaliser un mouvement factoriel

Déplacement

La distance réalisée entre chaque étape est bien différente (ƒ(x) = (200 - x)*0.1)
répéter jusqu'à ce que <(abscisse x) = (200)>
ajouter (((200) - (abscisse x)) * (0.1)) à x
La hauteur Y en fonction du chronomètre (valeur négative comprises)

Pour faire une vague sur une courbe de sin

répéter indéfiniment
mettre y à ((([sin v] de (chronomètre)) * (80)) modulo (360))

Rotation

répéter jusqu'à ce que <(direction) = (-90)>
tourner @turnRight de (((-90) - (direction)) * (0.1)) degrés







Représenter un mouvement avec une fonction

Il est possible de suivre la distance parcourue / différence de degrés entre chaque étape du mouvement et la nouvelle position / nouvelle direction avec des fonctions mathématiques.

Courbe de distance / différence ou courbe de position / direction ?

En fonction du bloc que vous utilisez, vous obtiendrez une courbe différente :

  • Les blocs qui mettent, s'orientent une donnée donneront une courbe de position / direction ; Exemple :
  • Les blocs qui ajoutent, tournent une donnée donneront une courbe de distance / différence ; Exemple :

Projet dédié

Idée
 Idée :
Nous vous proposons d'utiliser un projet réalisé par un de nos éditeurs pour représenter vos courbes.


Guide d'utilisation

Projet disponible ici.

  1. Lancez le projet, puis, utilisez le bouton menu (maison) ;
  2. Sélectionnez GRAPH, puis entrez, en fonction de ce que vous voulez suivre, la fonction voulue ;
  3. Appuyez sur entrée (retour) pour afficher la courbe.
Info
 Info :
Utilisez les bouton from (depuis), to (jusqu'à) pour définir l'intervalle de réalisation de la courbe. Utilisez step (étape) pour définir la précision de la courbe.
Idée
 Idée :
Utilisez la touche "k" pour cacher l'interface et pouvoir réaliser une capture d'écran.

Trouver la bonne fonction

Pour représenter un mouvement par une courbe, il suffit de lui associer une fonction, ainsi,

répéter jusqu'à ce que <(abscisse x) = (200)>
ajouter (((200) - (abscisse x)) * (0.1)) à x

devient ƒ(x) = (200 - x) * 0.1, ce qui permet de tracer la courbe du mouvement, ou plus précisément ici, la distance parcourue à chaque étape du mouvement vu que ce mouvement est factoriel.

Le plus dur ici est de trouver la fonction. Elle est en fait la même que celle que vous entrez sur Scratch.

Attention
 Attention :
N'oubliez pas de parenthèses, sinon vous n'obtiendrez pas la bonne courbe.

Exemple de courbe de fonction - Trouver le type de mouvement avec la courbe

On cherche à réaliser la courbe de position du script :

  • mettre x à ((((200) - (abscisse x)) * ([sin v] de (abscisse x))) * (20))

La fonction est la même que le calcul : (200 - abscisse x) * (sin de abscisse x) * 20. On a alors le résultat :

La fonction (200 - abscisse x) * (sin de abscisse x) * 20, en degrés.

On peut lire sur une courbe si le mouvement est factoriel, direct ou glissé (voir partie suivante).
Ici, on a la position et non la distance réalisée, puisque le bloc est mettre x à () et non ajouter () à x.

Courbes des mouvements

Courbe de position et de distance d'un mouvement Direct

La fonction est constitué d'un seul paramètre par coordonné : la position finale. La courbe est à son maximum à 1, et revient à zéro pour toutes les autres valeurs (ce sont des valeurs interdites). Notre projet ne permet pas de réaliser une telle fonction, car la fonction ici serait en fait du code :
si x = 1 alors
mettre la valeur de la courbe à position
sinon
valeur interdite
qui est ici une fonction logique. La courbe est la même pour la courbe de position et la courbe de distance (parcourue).

Courbe de position et de distance d'un mouvement Glissé

  1. La courbe est constante (une ligne droite parallèle à l'axe des abscisses), mais il n'y a pas de valeurs interdites. Il n'y a pas de variations, la fonction est égale à ƒ(x) = valeur étape s'il s'agit d'une courbe de distance.
  2. La courbe est linéaire, il s'agit alors d'une courbe de position. On a alors f(x) = étape * x + (abscisse x au début).

Courbe de position et de distance d'un mouvement Factoriel

La courbe peut être linéaire, hyperbolique ou polynomiale (du troisième degré). Il est impossible de vous donner la fonction du mouvement factoriel puisque ce dernier dépend déjà de là fonction que vous avez entré. Toutefois, la courbe de position sera égale à g(x) = f(x) et la courbe de distance peut être obtenue en faisant la différence de deux position apposées, dans l'ordre de l'éloignement à zéro (la valeur avec la plus grande distance à zéro est soustraite à l'autre), ce qui permet d'obtenir 2 points de la courbe.

Suivre un mouvement avec le stylo

Il est possible de suivre les mouvements réalisés par un sprite avec le stylo.
Commençons par définir une très petite taille de stylo, pour bien voir les détails.

LeSaviezVous
 LeSaviezVous :
Rendez-vous sur Turbowarp avec l'option hqpen pour avoir un meilleur stylo.
quand @greenFlag est cliqué
mettre la taille du stylo à (1)

Script nécessaire - Ne l'oubliez pas !

définir Suivre Orientation
mettre la couleur du stylo à [#ff5050] // rouge pour une rotation
stylo en position d'écriture
avancer de (10) pas
avancer de (-10) pas
relever le stylo

Suivre un mouvement direct

Déplacement

mettre la couleur du stylo à [#5050ff] // bleu pour un déplacement
stylo en position d'écriture
aller à x:(0) y:(0)
relever le stylo

Rotation

Suivre Orientation::custom
s'orienter à (90)
Suivre Orientation::custom

Suivre un mouvement glissé

Déplacement

mettre la couleur du stylo à [#5050ff] // bleu pour un déplacement
répéter (10) fois {
stylo en position d'écriture
relever le stylo
avancer de (10) pas
}@loopArrow::control

Rotation

répéter (10) fois {
Suivre Orientation::custom
tourner @turnRight de (10) degrés
Suivre Orientation::custom
}@loopArrow::control

Suivre un mouvement factoriel

Déplacement

mettre la couleur du stylo à [#5050ff] // bleu pour un déplacement
répéter jusqu'à ce que <(abscisse x) = (200)>
stylo en position d'écriture
relever le stylo
ajouter (((200) - (abscisse x)) * (0.1)) à x

Rotation

répéter jusqu'à ce que <(direction) = (-90)>
Suivre Orientation::custom
tourner @turnRight de (((-90) - (direction)) * (0.1)) degrés
Suivre Orientation::custom

Vous pouvez désormais suivre tous les types de mouvement, avec les mêmes exemples que ci-dessus.

Pour finir

Vous venez de terminer un long et complexe tutoriel et page d'information du wiki Scratch francophone ! Retrouvez la liste des tutoriels ici.

Voir aussi

  • Les mouvements ont lieu dans la Scène.
  • Les mouvements sont générés par les Blocs de Mouvement.
  • On peut suivre les mouvements grâce au Stylo.
↑ Page principale :→ Page suivante :MouvementCoordonnées

Pages dans la catégorie « Mouvement »

Cette catégorie comprend 2 pages, dont les 2 ci-dessous.