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

Funciones comunes

Las siguientes funciones están disponibles en los elementos inline_javascript:

reset_feedback()

Reinicia todas las variables de retroalimentación a su estado inicial.

Ejemplo

reset_feedback()

set_subject_nr(nr)

Establece el número de sujetos y la paridad (par / impar). Esta función se llama automáticamente cuando inicia un experimento, por lo que solo necesita llamarla si sobrescribe el número de tema que se especificó cuando se lanzó el experimento.

Param Tipo Descripción
nr Number El número de sujetos

Ejemplo

set_subject_nr(1)
console.log('Número de sujeto = ' + vars.subject_nr)
console.log('Paridad de sujeto = ' + vars.subject_parity)

sometimes([p])

Devuelve verdadero con cierta probabilidad. (Para una aleatorización más avanzada, use el paquete random-ext, que está disponible como random).

Param Tipo Predeterminado Descripción
[p] Number .5 La probabilidad de devolver verdadero

Ejemplo

if (sometimes()) {
  console.log('A veces ganas')
} else {
  console.log('A veces pierdes')
}

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

Convierte coordenadas polares (distancia, ángulo) a coordenadas cartesianas (x, y).

Devuelve: Array.<Number> - Un array [x, y].

Param Tipo Predeterminado Descripción
rho Number La coordenada radial, también distancia o excentricidad.
phi Number La coordenada angular. Esto refleja una rotación en sentido horario en grados (es decir, no en radianes), donde 0 está completamente a la derecha.
[pole] Array.<Number> [0, 0] El punto de referencia.

Ejemplo

// 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>

Convierte coordenadas cartesianas (x, y) a coordenadas polares (distancia, ángulo).

Devuelve: Array.<Number> - Un array [rho, phi]. Aquí, rho es la coordenada radial, también distancia o excentricidad. phi es la angular coordenada en grados (es decir, no en radianes), y refleja una rotación en sentido antihorario, donde 0 está completamente a la derecha.

Param Tipo Predeterminado Descripción
x Number La coordenada X.
y Number La coordenada Y
[pole] Array.<Number> [0, 0] El punto de referencia.

Ejemplo

// ECMA 5.1 (navegador + escritorio)
var rho_phi = xy_to_polar(100, 100)
var rho = rho_phi[0]
var phi = rho_phi[1]
// ECMA 6 (solo navegador)
let [rho, phi] = xy_to_polar(100, 100)

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

Da la distancia entre dos puntos.

Devuelve: Number - La distancia entre los dos puntos.

Param Tipo Descripción
x1 Number La coordenada x del primer punto.
y1 Number La coordenada y del primer punto.
x2 Number La coordenada x del segundo punto.
y2 Number La coordenada y del segundo punto.

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

Genera una lista de puntos (coordenadas x, y) en un círculo. Esto puede ser usado para dibujar estímulos en una disposición circular.

Devuelve: Array.<Array.<Number>> - Un array de arrays de coordenadas [x,y].

Parámetro Tipo Predeterminado Descripción
n Number El número de coordenadas x,y a generar.
rho Number La coordenada radial, también distancia o excentricidad, del primer punto.
[phi0] Number 0 La coordenada angular para la primera coordenada. Esta es una rotación antihoraria en grados (es decir, no en radianes), donde 0 está completamente a la derecha.
[polo] Array.<Number> [0, 0] El punto de referencia.

Ejemplo

// Dibujar 8 rectángulos alrededor de un punto de fijación central
// ECMA 5.1 (navegador + escritorio)
var c = Canvas()
c.fixdot()
var puntos = xy_circulo(8, 100)
for (var i in puntos) {
  var x = puntos[i][0]
  var y = puntos[i][1]
  c.rect({x: x - 10, y: y - 10, ancho: 20, alto: 20})
}
c.show()
// ECMA 6 (solo navegador)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_circulo(8, 100)) {
  c.rect({x: x - 10, y: y - 10, ancho: 20, alto: 20})
}
c.show()

xy_parrilla(n, espacio, [polo]) ⇒ Array.<Array.<Number>>

Genera una lista de puntos (coordenadas x,y) en una cuadrícula. Esto se puede usar para dibujar estímulos en un arreglo de cuadrícula.

Devuelve: Array.<Array.<Number>> - Un array de arrays de coordenadas [x,y].

Parámetro Tipo Predeterminado Descripción
n Number | Array.<Number> Un número que indica el número de columnas y filas, de modo que n=2 indica una cuadrícula de 2x2, o un [n_col, n_row] array, de modo que n=[2,3] indica una cuadrícula de 2x3.
espacio Number | Array.<Number> Un valor numérico que indica el espacio entre celdas, o un array [col_espacio, row_espacio].
[polo] Array.<Number> [0, 0] El punto de referencia.

Ejemplo

// Dibujar una cuadrícula de 4x4 de rectángulos
// ECMA 5 (escritorio + navegador)
var c = Canvas()
c.fixdot()
var puntos = xy_parrilla(4, 100)
for (var i in puntos) {
  var x = puntos[i][0]
  var y = puntos[i][1]
  c.rect({x: x - 10, y: y - 10, ancho: 20, alto: 20})
}
c.show()
// ECMA 6 (solo navegador)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_parrilla(4, 100)) {
  c.rect({x: x-10, y: y-10, ancho: 20, alto: 20})
}
c.show()

xy_aleatorio(n, ancho, alto, [min_dist], [polo]) ⇒ Array.<Array.<Number>>

Genera una lista de puntos aleatorios (coordenadas x,y) con una mínima espaciado entre cada par de puntos. Esta función lanzará un error cuando la lista de coordenadas no se pueda generar, normalmente porque hay demasiados puntos, el min_dist está demasiado alto, o el ancho o el alto están configurados demasiado bajos.

Devuelve: Array.<Array.<Number>> - Un array de arrays de coordenadas [x,y].

Parámetro Tipo Predeterminado Descripción
n Number El número de puntos a generar.
ancho Number El ancho del campo con puntos aleatorios.
alto Number El alto del campo con puntos aleatorios.
[min_dist] Number 0 La distancia mínima entre cada punto.
[polo] Array.<Number> [0, 0] El punto de referencia.

Ejemplo

// Dibujar 50 rectángulos en una cuadrícula aleatoria
// ECMA 5 (escritorio + navegador)
var c = Canvas()
c.fixdot()
var puntos = xy_aleatorio(50, 500, 500, 40)
for (var i in puntos) {
  var x = puntos[i][0]
  var y = puntos[i][1]
  c.rect({x: x - 10, y: y - 10, ancho: 20, alto: 20})
}
c.show()   
// ECMA 6 (solo navegador)
let c = Canvas()
c.fixdot()
for (let [x, y] of xy_aleatorio(50, 500, 500, 40)) {
  c.rect({x: x-10, y: y-10, ancho: 20, alto: 20})
}
c.show()
Supported by