glisser_deposer.moodle {SARP.moodle} | R 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 |
x.zones , y.zones |
Les coordonnées des coins supérieurs, gauches
des zones à définir sur l'image. Ignoré si |
txt.zones |
Les textes à utiliser pour les marques à placer sur
les zones (dans le même ordre que les coordonnées). Ignoré si
|
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 |
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 ( |
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 |
ordre.aleatoire |
Si |
commentaire.global , penalite , note.question , idnum |
Options
communes à toutes les questions Moodle, voyez
|
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 à
|
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 fonctionsgrconvertX
etgrconvertY
).; -
‘
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.