Funciones comunes
- reset_feedback()
- set_subject_nr(nr)
- sometimes([p])
- xy_from_polar(rho, phi, [pole]) ⇒ Array.<Number>
- xy_to_polar(x, y, [pole]) ⇒ Array.<Number>
- xy_distance(x1, y1, x2, y2) ⇒ Number
- xy_circle(n, rho, [phi0], [pole]) ⇒ Array.<Array.<Number>>
- xy_parrilla(n, espacio, [polo]) ⇒ Array.<Array.<Number>>
- xy_aleatorio(n, ancho, alto, [min_dist], [polo]) ⇒ Array.<Array.<Number>>
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()