Funciones de lienzo
La clase Canvas
se utiliza para presentar estímulos visuales. Generalmente
se crea un objeto Canvas
con la función de fábrica Canvas()
. Debido a que
Canvas()
es una función, no es necesario usar new
al llamarla.
La clase de JavaScript Canvas
imita la clase Canvas
de Python correspondiente.
Palabras clave de estilo se pueden pasar a todas las funciones que aceptan styleArgs
.
Las palabras clave de estilo también se pueden establecer como propiedades del objeto Canvas
. Para una
descripción general de las palabras clave de estilo, consulte la
Documentación de Canvas
en Python.
Importante: JavaScript no admite parámetros con nombre (o: palabras clave).
Por lo tanto, los parámetros se pasan como un Object
con propiedades nombradas y
valores predeterminados. Así:
var myCanvas = Canvas()
// (correcto) pasar parámetros como un objeto ...
myCanvas.fixdot({color: 'red'})
// (incorrecto) ... y *no* como parámetros nombrados
// myCanvas.fixdot(color='red')
myCanvas.show()
Canvas.arrow(obj)
Dibuja una flecha. Una flecha es un polígono compuesto por 7 vértices, con una cabeza de flecha apuntando a (ex, ey).
Param | Tipo | Predeterminado |
---|---|---|
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 |
{} |
Ejemplo
var myCanvas = Canvas()
var w = vars.width / 2
var h = vars.height / 2
// Importante: los parámetros se pasan como un objeto
myCanvas.arrow({sx: 0, sy: 0, w: w, h: h, head_width:100, body_length:0.5})
Canvas.clear([styleArgs])
Limpia el lienzo con el color de fondo actual. Tenga en cuenta que es generalmente más rápido usar un lienzo diferente para cada pantalla experimental que usar un único lienzo y borrarlo y volver a dibujarlo repetidamente.
Param | Tipo | Predeterminado |
---|---|---|
[styleArgs] | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.fixdot({color: 'green'})
myCanvas.show()
// hacer algo
myCanvas.clear()
myCanvas.fixdot({color: 'red'})
myCanvas.show()
Canvas.circle(obj)
Dibuja un círculo.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.r | Number |
50 |
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.circle({x: 100, y: 100, r: 50, fill: true, color:'red'})
Canvas.ellipse(obj)
Dibuja una elipse.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.x | Number |
-50 |
obj.y | Number |
-25 |
obj.w | Number |
100 |
obj.h | Number |
50 |
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.ellipse({x: -10, y: -10, w: 20, h: 20, fill:true})
Canvas.fixdot(obj)
Dibuja un punto de fijación. El estilo predeterminado es medium-open.
- 'large-filled' es un círculo relleno con un radio de 16px.
- 'medium-filled' es un círculo relleno con un radio de 8px.
- 'small-filled' es un círculo relleno con un radio de 4px.
- 'large-open' es un círculo relleno con un radio de 16px y un agujero de 2px.
- 'medium-open' es un círculo relleno con un radio de 8px y un agujero de 2px.
- 'small-open' es un círculo relleno con un radio de 4px y un agujero de 2px.
- 'large-cross' es una cruz de 16px.
- 'medium-cross' es una cruz de 8px.
- 'small-cross' es una cruz de 4px.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.x | Number |
0 |
obj.y | Number |
0 |
obj.style | String |
'default' |
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.fixdot()
Canvas.gabor(obj)
Dibuja un parche de Gabor.
Param | Tipo | Predeterminado |
---|---|---|
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 |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.gabor({x: 100, y: 100, orient: 45, freq: .05})
Canvas.image(obj)
Dibuja una imagen de un archivo en la piscina de archivos.
Param | Tipo | Predeterminado |
---|---|---|
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 |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.image({fname: 'image_in_pool.png'})
Canvas.line(obj)
Dibuja una línea.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.sx | Number |
0 |
obj.sy | Number |
0 |
obj.ex | Number |
50 |
obj.ey | Number |
0 |
..obj.styleArgs | Object |
{} |
Ejemplo
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)
Dibuja un parche de ruido, con un sobre.
Param | Tipo | Predeterminado |
---|---|---|
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 |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.noise_patch({x: 100, y: 100, env: 'circular'})
Canvas.polygon(obj)
Dibuja un polígono definido por una lista de vértices. Es decir, una forma de puntos conectados por líneas.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.vertices | Array.<Array.<Number>> |
|
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
var n1 = [0,0]
var n2 = [100, 100]
var n3 = [0, 100]
myCanvas.polygon({vertices: [n1, n2, n3]})
Canvas.rect(obj)
Dibuja un rectángulo.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.x | Number |
-50 |
obj.y | Number |
-25 |
obj.w | Number |
100 |
obj.h | Number |
50 |
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.rect({x: -10, y: -10, w: 20, h: 20, fill:true})
Canvas.show() ⇒ Number
Muestra, o 'voltea', el canvas en la pantalla.
Devuelve: Number
- Una marca de tiempo en la que el lienzo apareció en
la pantalla.
Canvas.text(obj)
Dibuja texto.
Param | Tipo | Predeterminado |
---|---|---|
obj | Object |
|
obj.text | String |
|
obj.center | Boolean |
true |
obj.x | Number |
0 |
obj.y | Number |
0 |
..obj.styleArgs | Object |
{} |
Ejemplo
var myCanvas = Canvas()
myCanvas.text({text: 'Algún texto'})