SlideShare a Scribd company logo
1 of 19
HTML5 - Elemento
    CANVAS
    Hora de los Jueves
HTML5: Elemento CANVAS
El canvas es un lienzo, donde podemo pintar usando
javascript
Esto nos permite hacer imágenes dinámicas, como en flash
pero sin plugins externos
Se debe proporcionar contenido alternativo para cuando el
elemento no este soportado, por ejemplo, una imágen
estática equivalente
Compatibilidad de CANVAS
Desarrollado inicialmente por Apple para Safari
Estandarizado por WAHTWG para HTML5
Adoptado por Firefox y Opera
Chrome usa el motor de Safari, por lo que funciona
igualmente
No funciona en IE8 aunque hay plugins para meterlo
Ejemplo de Uso
<canvas id="micanvas" width="200" height="100">
Este texto se muestra para los navegadores no compatibles con
canvas.
<br />
Por favor, utiliza Firefox, Chrome, Safari u Opera.
</canvas>


//Recibimos el elemento canvas
var canvas = document.getElementById('micanvas');

//Accedo al contexto de '2d' de este canvas, necesario para dibujar
var contexto = canvas.getContext('2d');

//Dibujo en el contexto del canvas
contexto.fillRect(50, 0, 10, 150);
Rectángulos

fillRect(x,y,anchura,altura)
strokeRect(x,y,anchura,altura)
clearRect(x,y,anchura,altura)
Paths
beginPath()
moveTo(x,y)   ctx.beginPath();
              ctx.moveTo(50,5);
lineTo(x,y)   ctx.lineTo(75,65);
fill()         ctx.lineTo(50,125);
              ctx.lineTo(25,65);
stroke()      ctx.fill();
closePath()
Ejemplo Path
ctx.beginPath();
ctx.moveTo(1,1);           ctx.beginPath();
for (i=1;i<100;i+=5){      ctx.moveTo(1,1);
   if((i%2)!=0){           for (i=1;i<100;i+=5){
      ctx.lineTo(i+5,i);      if((i%2)!=0){
   }else{                        ctx.lineTo(i+5,i);
      ctx.lineTo(i,i+5);      }else{
   }                             ctx.moveTo(i,i+5);
}                             }
ctx.lineTo(1,i);           }
ctx.closePath();           ctx.stroke();
ctx.stroke();
Ejemplo Arcos
ctx.beginPath();  
ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle  
ctx.moveTo(110,75);  
ctx.arc(75,75,35,0,Math.PI,false);   // Mouth (clockwise)  
ctx.moveTo(65,65);  
ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye  
ctx.moveTo(95,65);  
ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye  
ctx.stroke();  
Curvas Bezier y Cuadráticas
          quadraticCurveTo(cp1x, cp1y, x, y)
          bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)
// Quadratric curves example                // Bezier curves example  
ctx.beginPath();                            ctx.beginPath();  
ctx.moveTo(75,25);                          ctx.moveTo(75,40);  
ctx.quadraticCurveTo(25,25,25,62.5);        ctx.bezierCurveTo(75,37,70,25,50,25);  
ctx.quadraticCurveTo(25,100,50,100);        ctx.bezierCurveTo(20,25,20,62.5,20,62.5);  
ctx.quadraticCurveTo(50,120,30,125);        ctx.bezierCurveTo(20,80,40,102,75,120);  
ctx.quadraticCurveTo(60,120,65,100);        ctx.bezierCurveTo(110,102,130,80,130,62.5);  
ctx.quadraticCurveTo(125,100,125,62.5);     ctx.bezierCurveTo(130,62.5,130,25,100,25);  
ctx.quadraticCurveTo(125,25,75,25);         ctx.bezierCurveTo(85,25,75,37,75,40);  
ctx.stroke();                               ctx.fill();  
Imágenes
function draw() {  
    var ctx = document.getElementById('canvas').getContext('2d');  
    var img = new Image();  
    img.onload = function(){  
      ctx.drawImage(img,0,0);  
      ctx.beginPath();  
      ctx.moveTo(30,96);  
      ctx.lineTo(70,66);  
      ctx.lineTo(103,76);  
      ctx.lineTo(170,15);                             drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)



      ctx.stroke();  
    }  
    img.src = 'images/backdrop.png';  
  } 
Colores y Estilos

// these all set the fillStyle to 'orange'  
ctx.fillStyle = "orange";  
ctx.fillStyle = "#FFA500";  
ctx.fillStyle = "rgb(255,165,0)";  
ctx.fillStyle = "rgba(255,165,0,1)"; 
Lineas

lineWidth = value
lineCap = type (butt, round, square)
lineJoin = type (round, bevel, miter)
Gradientes

createLinearGradient(x1,y1,x2,y2)
createRadialGradient(x1,y1,r1,x2,y2,r2)
addColorStop(position, color)
var lineargradient = ctx.createLinearGradient(0,0,150,150);
lineargradient.addColorStop(0,'white');  
lineargradient.addColorStop(1,'black'); 
Más cosas


Transformaciones: Escalados, traslaciones, etc
Composiciones: Diferencia, Unión, clipping, mascaras...
Animaciones

Usar setInterval
Eventos para el ratón
Y Javascript que ya conocemos
Problema de todo esto


   Que es un coñazo hacer
cosas medio complejas
Processing JS
The Processing language was created by Ben Fry and Casey Reas. It evolved
from ideas explored in the Aesthetics and Computation Group at the MIT
Media Lab and was originally intended to be used in a Java run-time
environment. In the Summer of 2008, John Resig ( inventor of jQuery ),
ported the 2D context of Processing to Javascript for use in web pages. Much
like the native language, Processing.js is a community driven project, and
continues to grow as browser technology advances.

Basicamente que se crea en el MIT y el inventor del JQuery lo porta a
Javascript.
Como funciona processing

Función setup: Donde se definen las propiedades del canvas
Función draw: Donde se dibuja, es un loop
Otras funciones para añadir interactividad: mouseMoved,
MousePressed...
Ejemplo con processing
// Global variables      // Setup the Processing Canvas     // Main draw loop  
float radius = 50.0;      void setup(){                      void draw(){  
int X, Y;                  size( 200, 200 );                  radius = radius + sin( frameCount / 4 );  
int nX, nY;                strokeWeight( 10 );                // Track circle to new destination  
int delay = 16;            frameRate( 15 );                   X+=(nX-X)/delay;  
                           X = width / 2;                     Y+=(nY-Y)/delay;  
                           Y = height / 2;                    // Fill canvas grey  
                           nX = X;                            background( 100 );  
                           nY = Y;                            // Set fill-color to blue  
                         }                                    fill( 0, 121, 184 );  
// Set circle's next destination                              // Set stroke-color white  
void mouseMoved(){                                            stroke(255);   
  nX = mouseX;                                                // Draw circle  
  nY = mouseY;                                                ellipse( X, Y, radius, radius );                    
}                                                           }  

More Related Content

What's hot

What's hot (18)

Areas analisis tangram
Areas analisis tangramAreas analisis tangram
Areas analisis tangram
 
Comandos básicos.pptxe eni
Comandos básicos.pptxe eniComandos básicos.pptxe eni
Comandos básicos.pptxe eni
 
Bad ct 5_31 (1)
Bad ct 5_31 (1)Bad ct 5_31 (1)
Bad ct 5_31 (1)
 
Funciones
FuncionesFunciones
Funciones
 
Funcion cuadratica
Funcion cuadraticaFuncion cuadratica
Funcion cuadratica
 
Dominios f
Dominios fDominios f
Dominios f
 
Actividad 3 gemio duran andrea
Actividad 3 gemio duran andreaActividad 3 gemio duran andrea
Actividad 3 gemio duran andrea
 
23409207 ejercicios-de-funciones-graficas-dominio-y-rango
23409207 ejercicios-de-funciones-graficas-dominio-y-rango23409207 ejercicios-de-funciones-graficas-dominio-y-rango
23409207 ejercicios-de-funciones-graficas-dominio-y-rango
 
Plots
PlotsPlots
Plots
 
Funciones intuitivas 3_eso_blog01
Funciones intuitivas 3_eso_blog01Funciones intuitivas 3_eso_blog01
Funciones intuitivas 3_eso_blog01
 
Máxima ejercicio
Máxima ejercicioMáxima ejercicio
Máxima ejercicio
 
Máxima ejercicio
Máxima ejercicioMáxima ejercicio
Máxima ejercicio
 
Expo 4 metodos de transporte
Expo 4   metodos de transporteExpo 4   metodos de transporte
Expo 4 metodos de transporte
 
Desarrollo De Un Display
Desarrollo De Un DisplayDesarrollo De Un Display
Desarrollo De Un Display
 
Ejercicio 12
Ejercicio 12Ejercicio 12
Ejercicio 12
 
C1 mate función valor absoluto - 4º
C1 mate   función valor absoluto - 4ºC1 mate   función valor absoluto - 4º
C1 mate función valor absoluto - 4º
 
Faber
FaberFaber
Faber
 
S1 banco de preguntas
S1 banco de preguntasS1 banco de preguntas
S1 banco de preguntas
 

Viewers also liked

Taller 1 p1 grupo3 deily lopez 11 a
Taller 1 p1 grupo3  deily lopez 11 aTaller 1 p1 grupo3  deily lopez 11 a
Taller 1 p1 grupo3 deily lopez 11 aDeisy Pestana
 
2 reglas de_inversion_alternativas
2 reglas de_inversion_alternativas2 reglas de_inversion_alternativas
2 reglas de_inversion_alternativasMarcelo Delpino
 
Supercharged HTML & CSS
Supercharged HTML & CSSSupercharged HTML & CSS
Supercharged HTML & CSSMax Kraszewski
 
Analisis De Inversiones
Analisis De InversionesAnalisis De Inversiones
Analisis De Inversionesnitro1100
 
7 Ross7 Valor Presente Neto Y Presupuesto De Capital
7 Ross7   Valor Presente Neto Y Presupuesto De Capital7 Ross7   Valor Presente Neto Y Presupuesto De Capital
7 Ross7 Valor Presente Neto Y Presupuesto De Capitalcarloscatacora
 
tecnicas de evaluacion del capital
tecnicas de evaluacion del capitaltecnicas de evaluacion del capital
tecnicas de evaluacion del capitalmanchasek
 
HTML5 Enfoque Semantico
HTML5 Enfoque SemanticoHTML5 Enfoque Semantico
HTML5 Enfoque SemanticoMax Kraszewski
 
1.finanzas gerenciales
1.finanzas gerenciales1.finanzas gerenciales
1.finanzas gerencialesvlady2511
 
Evaluacion de Inversiones - Cuarta Sesion
Evaluacion de Inversiones - Cuarta SesionEvaluacion de Inversiones - Cuarta Sesion
Evaluacion de Inversiones - Cuarta SesionHector Javier
 
Introducción al desarrollo web frontend
Introducción al desarrollo web frontendIntroducción al desarrollo web frontend
Introducción al desarrollo web frontendMax Kraszewski
 
Evaluacion de Proyectos. Análisis Económico Financiero
Evaluacion de Proyectos. Análisis Económico FinancieroEvaluacion de Proyectos. Análisis Económico Financiero
Evaluacion de Proyectos. Análisis Económico FinancieroUniversidad Nacional de Loja
 
Presupuesto
PresupuestoPresupuesto
PresupuestoMily
 

Viewers also liked (20)

Taller 1 p1 grupo3 deily lopez 11 a
Taller 1 p1 grupo3  deily lopez 11 aTaller 1 p1 grupo3  deily lopez 11 a
Taller 1 p1 grupo3 deily lopez 11 a
 
2 reglas de_inversion_alternativas
2 reglas de_inversion_alternativas2 reglas de_inversion_alternativas
2 reglas de_inversion_alternativas
 
Api
ApiApi
Api
 
Supercharged HTML & CSS
Supercharged HTML & CSSSupercharged HTML & CSS
Supercharged HTML & CSS
 
01 presentacion fep etapas
01 presentacion fep etapas01 presentacion fep etapas
01 presentacion fep etapas
 
Steve Job
Steve JobSteve Job
Steve Job
 
Analisis De Inversiones
Analisis De InversionesAnalisis De Inversiones
Analisis De Inversiones
 
7 Ross7 Valor Presente Neto Y Presupuesto De Capital
7 Ross7   Valor Presente Neto Y Presupuesto De Capital7 Ross7   Valor Presente Neto Y Presupuesto De Capital
7 Ross7 Valor Presente Neto Y Presupuesto De Capital
 
tecnicas de evaluacion del capital
tecnicas de evaluacion del capitaltecnicas de evaluacion del capital
tecnicas de evaluacion del capital
 
Contabilidad Avanzada
Contabilidad AvanzadaContabilidad Avanzada
Contabilidad Avanzada
 
HTML5 Enfoque Semantico
HTML5 Enfoque SemanticoHTML5 Enfoque Semantico
HTML5 Enfoque Semantico
 
1.finanzas gerenciales
1.finanzas gerenciales1.finanzas gerenciales
1.finanzas gerenciales
 
Gerencia financiera costo de capital
Gerencia financiera costo de capitalGerencia financiera costo de capital
Gerencia financiera costo de capital
 
Análisis y selección de inversiones, por Òscar Elvira
Análisis y selección de inversiones, por Òscar ElviraAnálisis y selección de inversiones, por Òscar Elvira
Análisis y selección de inversiones, por Òscar Elvira
 
Evaluacion de Inversiones - Cuarta Sesion
Evaluacion de Inversiones - Cuarta SesionEvaluacion de Inversiones - Cuarta Sesion
Evaluacion de Inversiones - Cuarta Sesion
 
Tema 5
Tema 5Tema 5
Tema 5
 
Introducción al desarrollo web frontend
Introducción al desarrollo web frontendIntroducción al desarrollo web frontend
Introducción al desarrollo web frontend
 
Evaluacion de Proyectos. Análisis Económico Financiero
Evaluacion de Proyectos. Análisis Económico FinancieroEvaluacion de Proyectos. Análisis Económico Financiero
Evaluacion de Proyectos. Análisis Económico Financiero
 
Presupuesto de capital
Presupuesto de capitalPresupuesto de capital
Presupuesto de capital
 
Presupuesto
PresupuestoPresupuesto
Presupuesto
 

Similar to Introducción al elemento canvas de HTML5

Similar to Introducción al elemento canvas de HTML5 (20)

Introducción a Processing
Introducción a ProcessingIntroducción a Processing
Introducción a Processing
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
gráficas 2D y 3D (José Ponce)
gráficas 2D y 3D (José  Ponce)gráficas 2D y 3D (José  Ponce)
gráficas 2D y 3D (José Ponce)
 
Bandera c++
Bandera c++Bandera c++
Bandera c++
 
arc, rectMode, translate en Processing
arc, rectMode, translate en Processing arc, rectMode, translate en Processing
arc, rectMode, translate en Processing
 
clase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdfclase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdf
 
Xna game studio presentación 05
Xna game studio   presentación 05Xna game studio   presentación 05
Xna game studio presentación 05
 
Processing
ProcessingProcessing
Processing
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
funciones programacion
funciones programacionfunciones programacion
funciones programacion
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
Java modografico
Java modograficoJava modografico
Java modografico
 
Ejemplos java
Ejemplos javaEjemplos java
Ejemplos java
 
Canvas
CanvasCanvas
Canvas
 
Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)
 
Cadenas y punteros.ppt
Cadenas y punteros.pptCadenas y punteros.ppt
Cadenas y punteros.ppt
 
PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1
 
Graficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabGraficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlab
 
Universidad técnica de ambato
Universidad técnica de ambatoUniversidad técnica de ambato
Universidad técnica de ambato
 
Lab
LabLab
Lab
 

Recently uploaded

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Recently uploaded (15)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Introducción al elemento canvas de HTML5

Editor's Notes