OpenSesame
Rapunzel Code Editor
DataMatrix
Support forum
Python Tutorials
MindProbe
Supported by

Fonctions communes

Les fonctions suivantes sont disponibles dans les éléments inline_javascript :

reset_feedback()

Réinitialise toutes les variables de feedback à leur état initial.

Exemple

reset_feedback()

set_subject_nr(nr)

Définit le numéro du sujet et sa parité (pair/ impair). Cette fonction est appelée automatiquement lorsqu'une expérience est lancée. Vous n'avez donc besoin de l'appeler vous-même que si vous écrasez le numéro de sujet spécifié au lancement de l'expérience.

Param Type Description
nr Number Le numéro du sujet

Exemple

set_subject_nr(1)
console.log('Numéro de sujet = ' + vars.subject_nr)
console.log('Parité du sujet = ' + vars.subject_parity)

sometimes([p])

Renvoie vrai avec une certaine probabilité. (Pour une randomisation plus avancée, utilisez le package random-ext, disponible sous random.)

Param Type Default Description
[p] Number .5 La probabilité de renvoyer vrai

Exemple

if (sometimes()) {
  console.log('Parfois, vous gagnez')
} else {
  console.log('Parfois, vous perdez')
}

xy_from_polar(rho, phi, [pole]) ⇒ Array.<Number>

Convertit des coordonnées polaires (distance, angle) en coordonnées cartésiennes (x, y).

Retour: Array.<Number> - Un tableau [x, y].

Param Type Default Description
rho Number La coordonnée radiale, également distance ou excentricité.
phi Number La coordonnée angulaire. Cela reflète une rotation horaire en degrés (c'est-à-dire pas en radians), où 0 est tout droit à droite.
[pole] Array.<Number> [0, 0] Le point de référence.

Exemple

// ECMA 5.1
var xy1 = xy_from_polar(100, 45)
var xy2 = xy_from_polar(100, -45)
var c = Canvas()
c.line({sx: xy1[0], sy: xy1[1], ex: -xy1[0], ey: -xy1[1]})
c.line({sx: xy2[0], sy: xy2[1], ex: -xy2[0], ey: -xy2[1]})
c.show()
// ECMA 6
let [x1, y1] = xy_from_polar(100, 45)
let [x2, y2] = xy_from_polar(100, -45)
let c = Canvas()
c.line({sx: x1, sy: y1, ex: -x1, ey: -y1})
c.line({sx: x2, sy: y2, ex: -x2, ey: -y2})
c.show()

xy_to_polar(x, y, [pole]) ⇒ Array.<Number>

Convertit des coordonnées cartésiennes (x, y) en coordonnées polaires (distance, angle).

Retour: Array.<Number> - Un tableau [rho, phi]. Ici, rho est la coordonnée radiale, également distance ou excentricité. phi est la coordonnée angulaire en degrés (c'est-à-dire pas en radians) et reflète une rotation anti-horaire, où 0 est tout droit à droite.

Param Type Default Description
x Number La coordonnée X.
y Number La coordonnée Y
[pole] Array.<Number> [0, 0] Le point de référence.

Exemple

// ECMA 5.1 (navigateur + bureau)
var rho_phi = xy_to_polar(100, 100)
var rho = rho_phi[0]
var phi = rho_phi[1]
// ECMA 6 (navigateur uniquement)
let [rho, phi] = xy_to_polar(100, 100)

xy_distance(x1, y1, x2, y2) ⇒ Number

Donne la distance entre deux points.

Retour: Number - La distance entre les deux points.

Param Type Description
x1 Number La coordonnée x du premier point.
y1 Number La coordonnée y du premier point.
x2 Number La coordonnée x du deuxième point.
y2 Number La coordonnée y du deuxième point.

xy_circle(n, rho, [phi0], [pole]) ⇒ Array.<Array.<Number>>

Génère une liste de points (coordonnées x,y) dans un cercle. Ceci peut être utilisé pour dessiner des stimuli dans un arrangement circulaire.

Renvoie: Array.<Array.<Number>> - Un tableau de tableaux de coordonnées [x,y].

Param Type Par défaut Description
n Nombre Le nombre de coordonnées x,y à générer.
rho Nombre La coordonnée radiale, également distance ou excentricité, du premier point.
[phi0] Nombre 0 La coordonnée angulaire pour la première coordonnée. Il s'agit d'une rotation antihoraire en degrés (c'est-à-dire pas en radians), où 0 est tout droit à droite.
[pole] Array.<Nombre> [0, 0] Le point de référence.

Exemple

// Dessinez 8 rectangles autour d'un point de fixation central
// ECMA 5.1 (navigateur + bureau)
var c = Canvas()
c.fixdot()
var points = xy_circle(8, 100)
for (var i in points) {
  var x = points[i][0]
  var y = points[i][1]
  c.rect({x: x - 10, y: y - 10, w: 20, h: 20})
}
c.show()
// ECMA 6 (navigateur uniquement)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_circle(8, 100)) {
  c.rect({x: x - 10, y: y - 10, w: 20, h: 20})
}
c.show()

xy_grid(n, espacement, [pole]) ⇒ Array.<Array.<Number>>

Génère une liste de points (coordonnées x,y) dans une grille. Ceci peut être utilisé pour dessiner des stimuli dans un arrangement en grille.

Renvoie: Array.<Array.<Number>> - Un tableau de tableaux de coordonnées [x,y].

Param Type Par défaut Description
n Nombre | Array.<Number> Un nombre qui indique le nombre de colonnes et de rangées, de sorte que n=2 indique une grille 2x2, ou un tableau [n_col, n_row], de sorte que n=[2,3] indique une grille 2x3.
espacement Nombre | Array.<Number> Une valeur numérique qui indique l' espacement entre les cellules, ou un tableau [col_spacing, row_spacing].
[pole] Array.<Number> [0, 0] Le point de référence.

Exemple

// Dessinez une grille 4x4 de rectangles
// ECMA 5 (bureau + navigateur)
var c = Canvas()
c.fixdot()
var points = xy_grid(4, 100)
for (var i in points) {
  var x = points[i][0]
  var y = points[i][1]
  c.rect({x: x - 10, y: y - 10, w: 20, h: 20})
}
c.show()
// ECMA 6 (navigateur uniquement)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_grid(4, 100)) {
  c.rect({x: x-10, y: y-10, w: 20, h: 20})
}
c.show()

xy_random(n, largeur, hauteur, [min_dist], [pole]) ⇒ Array.<Array.<Number>>

Génère une liste de points aléatoires (coordonnées x,y) avec un minimum espacement entre chaque paire de points. Cette fonction générera une erreur lorsque la liste des coordonnées ne peut pas être générée, généralement parce qu'il y a trop de points, le min_dist est trop élevé, ou la largeur ou la hauteur sont trop bas.

Renvoie: Array.<Array.<Number>> - Un tableau de tableaux de coordonnées [x,y].

Param Type Par défaut Description
n Nombre Le nombre de points à générer.
largeur Nombre La largeur du champ avec des points aléatoires.
hauteur Nombre La hauteur du champ avec des points aléatoires.
[min_dist] Nombre 0 La distance minimale entre chaque point.
[pole] Array.<Number> [0, 0] Le point de référence.

Exemple

// Dessinez 50 rectangles dans une grille aléatoire
// ECMA 5 (bureau + navigateur)
var c = Canvas()
c.fixdot()
var points = xy_random(50, 500, 500, 40)
for (var i in points) {
  var x = points[i][0]
  var y = points[i][1]
  c.rect({x: x - 10, y: y - 10, w: 20, h: 20})
}
c.show()   
// ECMA 6 (navigateur uniquement)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_random(50, 500, 500, 40)) {
  c.rect({x: x-10, y: y-10, w: 20, h: 20})
}
c.show()
Supported by