glisser_deposer: Créer une question demandant de placer des éléments à des...

glisser_deposer.moodleR Documentation

Créer une question demandant de placer des éléments à des positions précises d'une image

Description

Cette fonction permet de créer une question dans laquelle le but est de placer des éléments sur une image.

Usage

glisser_deposer.moodle( texte, titre = "Glisser-d\u00e9poser...",
                        f.creer_figure,
                        fichier.image,
                        x.zones, y.zones, txt.zones,
                        indications = paste0( "Zone ", 1:n.zones ),
                        img.zones = NULL, zone.unique = TRUE,
                        grp.zones = rep( 1, n.zones ),
                        ordre.aleatoire = TRUE,
                        commentaire.global = NA,
                        penalite = NA, note.question = NA, idnum = NA,
                        temps,
                        fichier.xml = get( "fichier.xml",
                                           envir = SARP.Moodle.env ),
                        ... )

Arguments

texte

L'énoncé de la question (une chaîne de caractères). Cet énoncé peut contenir n'importe quel caractère (codage en UTF-8) et n'importe quelles balises HTML.

titre

L'intitulé de la question, en HTML.

f.creer_figure

La fonction qui va construire l'image et les zones sur lesquelles déposer les éléments (voyez les détails, ci-dessous).

fichier.image

Le nom du fichier contenant l'image à légender. Ignoré si f.creer_figure est fournie.

x.zones,y.zones

Les coordonnées des coins supérieurs, gauches des zones à définir sur l'image. Ignoré si f.creer_figure est fournie.

txt.zones

Les textes à utiliser pour les marques à placer sur les zones (dans le même ordre que les coordonnées). Ignoré si f.creer_figure est fournie.

indications

Les textes à afficher sur les zones de l'image pour les identifier.

img.zones

Les noms des fichiers contenant les images à utiliser pour chaque marque. Ignoré si f.creer_figure est fournie.

zone.unique

Un vecteur aussi long que le nombre de zones, indiquant si l'étiquette associée peut être réutilisée après avoir été placée dans une zone (FALSE) ou non (TRUE). Ignoré si f.creer_figure est fournie.

grp.zones

Un vecteur d'entiers aussi long que le nombre de zones, indiquant à quel groupe d'étiquette appartient chacune des étiquettes. L'apparence de l'étiquette (forme, couleur) dépend de ce groupe. Ignoré si f.creer_figure est fournie.

ordre.aleatoire

Si TRUE, l'ordre des marques est permuté aléatoirement dans le fichier

commentaire.global, penalite, note.question, idnum

Options communes à toutes les questions Moodle, voyez debut_question.moodle.

temps

Le temps conseillé pour répondre à la question, en minutes.

fichier.xml

Le fichier correspondant au questionnaire qui contiendra cette question (par défaut, le dernier créé).

...

Arguments additionnels qui seront passés à f.creer_figure.

Details

Ce type de question affiche une image et, en-dessous, des étiquettes textuelles ou formées d'une image à placer sur l'image. Les étiquettes ont toutes la même apparence (taille, forme, couleur). Les zones où les placer sont indiquées sur l'image en surimpression et font la même taille que les étiquettes. Il est possible de créer des groupes d'étiquettes (mais ce n'est intéressant que s'il y a au moins deux étiquettes par groupe, sans quoi la taille de la zone affichée sur l'image donne la réponse...); la forme et la couleur des étiquettes varie d'un groupe à l'autre. Attention, les étiquettes d'un groupe donné ne peuvent pas être placées sur les zones des étiquettes des autres groupes. Par défaut, toutes les étiquettes appartiennent au premier groupe (étiquettes rectangulaires, blanches). La taille des étiquettes est identique dans un même groupe, définie pour pouvoir contenir le texte ou l'image le plus grand du groupe.

Utilisation de la fonction f.creer_figure

Avec cette méthode, la fonction se charge de créer le fichier d'image (au format PNG, dans le dossier temporaire de R) avant d'appeler f.creer_figure. La fonction f.creer_figure peut alors utiliser tous les outils graphiques basiques de R pour créer une figure et les zones à légender sur cette figure. Elle ne doit pas clore la figure (pas d'appel à dev.off() ou à graphics.off).

La fonction f.creer_figure doit renvoyer une data.frame dont chaque ligne correspond à une zone, et contenant au moins trois colonnes:

  • X’ et ‘Y’, indiquant les coordonnées du coin supérieur, gauche de la zone, exprimées dans le système d'unité natif du graphe créé avec R (elles seront ensuite converties en pixels grâce aux fonctions grconvertX et grconvertY).;

  • Texte’, indiquant le texte de l'étiquette associée à la zone.

La taille de la zone sera déterminée par Moodle en fonction de la taille de l'étiquette associée à la zone.

De façon optionnelle, il peut y avoir une colonne ‘Indications’ qui contient une indication textuelle sur la zone, une colonne ‘Images’ qui contient le nom du fichier contenant l'image à associer à la zone, une colonne ‘Groupes’ qui précise à quelle groupe d'étiquette appartient l'étiquette associée à la zone et une colonne ‘Unique’ qui indique si l'étiquette disparaît des propositions après avoir été placée (TRUE) ou si elle reste, pouvant alors être placée sur plusieurs zones (FALSE). Si ces colonnes sont absentes, l'indication est “Zone n°” et le numéro de la zone (de sa ligne dans la data.frame), toutes les étiquettes ne contiennent que du texte, sont placées dans le même groupe et ne sont utilisables qu'une seule fois.

Il est possible de créer des étiquettes ne correspondant à aucune zone (“distracteurs”) en indiquant NA pour leurs coordonnées.

Utilisation directe

Il est aussi possible de préciser une image quelconque, grâce à l'option fichier.image. Dans ce cas, les options x.zones, y.zones, txt.zones, indications, img.zones, grp.zones et zone.unique permettent de préciser les caractéristiques de chaque zone à définir. Les coordonnées doivent être indiquées en pixels.

Value

Aucune valeur n'est renvoyée par cette fonction.

Author(s)

Emmanuel Curis emmanuel.curis@parisdescartes.fr

See Also

legender_image.moodle pour une autre façon de demander à placer des éléments sur une image; glisser_textes.moodle pour faire glisser des textes dans un texte à trou.


SARP.moodle documentation built on June 8, 2023, 6:37 a.m.