Fonctions de toile
La classe Canvas
est utilisée pour présenter des stimuli visuels. Vous créez généralement un objet Canvas
avec la fonction de fabrique Canvas()
. Comme Canvas()
est une fonction, vous n'avez pas besoin d'utiliser new
lors de son appel.
La classe JavaScript Canvas
imite la classe Python Canvas
correspondante.
Les mots-clés de style peuvent être passés à toutes les fonctions qui acceptent styleArgs
.
Les mots-clés de style peuvent également être définis comme propriétés de l'objet Canvas
. Pour un
aperçu des mots-clés de style, voir la documentation Python Canvas
.
Important : JavaScript ne prend pas en charge les paramètres nommés (ou : les mots-clés).
Par conséquent, les paramètres sont passés via un Object
avec des propriétés nommées et
des valeurs par défaut. Comme ceci :
var myCanvas = Canvas()
// (correct) passez des paramètres comme un Object ...
myCanvas.fixdot({color: 'red'})
// (incorrect) ... et *non* comme des paramètres nommés
// myCanvas.fixdot(color='red')
myCanvas.show()
Canvas.arrow(obj)
Dessine une flèche. Une flèche est un polygone composé de 7 sommets, avec une pointe de flèche pointant vers (ex, ey).
Param | Type | Default |
---|---|---|
obj | Object |
|
obj.sx | Number |
0 |
obj.sy | Number |
0 |
obj.ex | Number |
50 |
obj.ey | Number |
0 |
obj.body_length | Number |
0.8 |
obj.body_width | Number |
0.5 |
obj.head_width | Number |
30 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
var w = vars.width / 2
var h = vars.height / 2
// Important : les paramètres sont passés comme un Object
myCanvas.arrow({sx: 0, sy: 0, w: w, h: h, head_width:100, body_length:0.5})
Canvas.clear([styleArgs])
Efface le canevas avec la couleur d'arrière-plan actuelle. Notez qu'il est généralement plus rapide d'utiliser un canevas différent pour chaque affichage expérimental plutôt que d'utiliser un seul canevas et de le effacer et le redessiner à plusieurs reprises.
Param | Type | Default |
---|---|---|
[styleArgs] | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.fixdot({color: 'green'})
myCanvas.show()
// faire quelque chose
myCanvas.clear()
myCanvas.fixdot({color: 'red'})
myCanvas.show()
Canvas.circle(obj)
Dessine un cercle.
Param | Type | Default |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.r | Number |
50 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.circle({x: 100, y: 100, r: 50, fill: true, color:'red'})
Canvas.ellipse(obj)
Dessine une ellipse.
Param | Type | Default |
---|---|---|
obj | Object |
|
obj.x | Number |
-50 |
obj.y | Number |
-25 |
obj.w | Number |
100 |
obj.h | Number |
50 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.ellipse({x: -10, y: -10, w: 20, h: 20, fill:true})
Canvas.fixdot(obj)
Dessine un point de fixation. Le style par défaut est moyen-ouvert.
- 'large-filled' est un cercle rempli avec un rayon de 16px.
- 'medium-filled' est un cercle rempli avec un rayon de 8px.
- 'small-filled' est un cercle rempli avec un rayon de 4px.
- 'large-open' est un cercle rempli avec un rayon de 16px et un trou de 2px.
- 'medium-open' est un cercle rempli avec un rayon de 8px et un trou de 2px.
- 'small-open' est un cercle rempli avec un rayon de 4px et un trou de 2px.
- 'large-cross' est une croix de 16px.
- 'medium-cross' est une croix de 8px.
- 'small-cross' est une croix de 4px.
Param | Type | Par défaut |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.style | String |
'default' |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.fixdot()
Canvas.gabor(obj)
Dessine un patch Gabor.
Param | Type | Par défaut |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.orient | Number |
0 |
obj.freq | Number |
.1 |
obj.env | String |
'gaussian' |
obj.size | Number |
96 |
obj.stdev | Number |
12 |
obj.phase | Number |
0 |
obj.col1 | String |
'white' |
obj.col2 | String |
'black' |
obj.bgmode | String |
'avg' |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.gabor({x: 100, y: 100, orient: 45, freq: .05})
Canvas.image(obj)
Dessine une image à partir d'un fichier dans le pool de fichiers.
Param | Type | Par défaut |
---|---|---|
obj | Object |
|
obj.fname | String |
|
obj.center | Boolean |
true |
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.scale | Number |
1 |
obj.rotation | Number |
0 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.image({fname: 'image_in_pool.png'})
Canvas.line(obj)
Dessine une ligne.
Param | Type | Par défaut |
---|---|---|
obj | Object |
|
obj.sx | Number |
0 |
obj.sy | Number |
0 |
obj.ex | Number |
50 |
obj.ey | Number |
0 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
var ex = vars.width / 2
var ey = vars.height / 2
myCanvas.line({sx: 0, sy: 0, ex: ex, ey: ey})
Canvas.noise_patch(obj)
Dessine un patch de bruit, avec une enveloppe.
Param | Type | Par défaut |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.env | String |
'gaussian' |
obj.size | Number |
96 |
obj.stdev | Number |
12 |
obj.col1 | String |
'white' |
obj.col2 | String |
'black' |
obj.bgmode | String |
'avg' |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.noise_patch({x: 100, y: 100, env: 'circular'})
Canvas.polygon(obj)
Dessine un polygone défini par une liste de sommets. C'est-à-dire une forme de points reliés par des lignes.
Param | Type | Valeur par défaut |
---|---|---|
obj | Object |
|
obj.vertices | Array.<Array.<Number>> |
|
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
var n1 = [0,0]
var n2 = [100, 100]
var n3 = [0, 100]
myCanvas.polygon({vertices: [n1, n2, n3]})
Canvas.rect(obj)
Dessine un rectangle.
Param | Type | Valeur par défaut |
---|---|---|
obj | Object |
|
obj.x | Number |
-50 |
obj.y | Number |
-25 |
obj.w | Number |
100 |
obj.h | Number |
50 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.rect({x: -10, y: -10, w: 20, h: 20, fill:true})
Canvas.show() ⇒ Number
Affiche, ou 'retourne', le canevas à l'écran.
Renvoie: Number
- Un horodatage du moment où le canevas est apparu sur
l'écran.
Canvas.text(obj)
Dessine du texte.
Param | Type | Valeur par défaut |
---|---|---|
obj | Object |
|
obj.text | String |
|
obj.center | Boolean |
true |
obj.x | Number |
0 |
obj.y | Number |
0 |
..obj.styleArgs | Object |
{} |
Exemple
var myCanvas = Canvas()
myCanvas.text({text: 'Du texte'})