• Aucun résultat trouvé

27vebe2008 É ieS Bi Uiveiédei eShia Ai

N/A
N/A
Protected

Academic year: 2022

Partager "27vebe2008 É ieS Bi Uiveiédei eShia Ai"

Copied!
20
0
0

Texte intégral

(1)

Programmation Web

Liene 3informatique

Sébastien Verel

vereli3s.unie.fr

www.i3s.unie.fr/

verel

ÉquipeSoBi-UniversitédeNieSophia-Antipolis

(2)

1

Connaitreles prinipesde SVG

2

Connaitrelastruture d'un hiersvg

3

Connaitreles gures debase

4

Savoirregrouperunensemble de gures

5

Connaitreles propriétés prinipales:ll, stroke,et.

Question prinipaledujour :

Comment produireune imageen XML?

(3)

Cours de XML-Un format de dessinvetoriel en XML:SVG

G. Chagnon

http://www.ghagnon.fr/ours/xml/svg.html

Attentiontoutefoisquelquestrus datent.

Et biensur,les reommandationsdu W3C

(4)

SVG:SalableVetor Graphis

Crée en 1998 par lesprinipauxateurs duweb

langage de desriptionde graphique 2Dvetoriel

langage "léger" basésurXML

(5)

Avantagesdudessin vetoriel

AvantagesduXML

(6)

<?xml version="1.0" enoding="iso-8859-1"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphis/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"

xmlns:xlink="http://www.w3.org/1999/xlink">

</svg>

Entete XML,

Type de doument,

Espae de nomdansl'élément raine.

(7)

Façon W3Canal historique:

<objet type="image/svg+xml" data="file.svg"></objet>

Façon dissidente:

<embed sr="file.svg"></embed>

Etle plusbeau...

(8)

<p>Voii un retangle :

<svg:svg xmlns="http://www.w3.org/2000/svg" version="1.1"

xmlns:xlink="http://www.w3.org/1999/xlink">

<svg:ret style="fill:#0000ff"

x="0" y="0" width="100" height="200"/>

</svg:svg>

Joli non ?

</p>

(9)

Texte:text

Retangles :ret

Cerleirleet ellipseellipse

Lignesline etpoly-lignespolyline

Polygones polygon

Formes arbitraires avepath

Synthaxe omme XHMTL (enfaitXML) aveattributs,y ompris

id etlass, etpropriétés de style!

(10)

<ret x="200" y="100" width="60" height="30"

fill="red" stroke="blue" stroke-width="3" />

<ret x="100" y="150" rx="10" ry="75"

width="30" height="200" />

<irle r="50" x="100" y="100" fill="yan" fill-opaity="1"/>

<ellipse rx="150" ry="100" x="250" y="150"

fill="yellow" fill-opaity="0.5"/>

<line x1="50" y1="50" x2="150" y2="400"

stroke="blue" stroke-lineap="round"/>

<line x1="75" y1="200" x2="350" y2="10"

stroke="green" stroke-lineap="round"/>

<polyline points="20,250, 100,100, 400,100, 300,450"

fill="none" stroke="red" stroke-lineap="round"/>

<polygon points="99,50,143,125,56,124,99,50"/>

<text x="100" y="200">Faile d'érire un texte</text>

(11)

<ret id="MonRet" width="6m" height="1m" x="1m" y="0.2m"/>

<use x="2m" y="2m" fill="yellow" xlink:href="#MonRet"/>

<use x="2m" y="3.5m" fill="red" xlink:href="#MonRet" />

(12)

<g id="bleublanrouge">

<ret x="0" fill="blue" width="40" height="40"/>

<ret x="40" fill="white" width="40" height="40"/>

<ret x="80" fill="red" width="40" height="40"/>

<ret x="0" fill="none" width="120" height="40"

stroke="blak" stroke-width="2"/>

</g>

<use x="60" y="40" xlink:href="#bleublanrouge" opaity="0.3" />

(13)

<symbol id="bleublanrouge">

<ret x="0" fill="blue" width="40" height="40"/>

<ret x="40" fill="white" width="40" height="40"/>

<ret x="80" fill="red" width="40" height="40"/>

<ret x="0" fill="none" width="120" height="40"

stroke="blak" stroke-width="2"/>

</symbol>

<use x="60" y="40" xlink:href="#bleublanrouge" opaity="0.3" />

<use x="40" y="20" xlink:href="#bleublanrouge" />

(14)

<defs>

<ret id="arrerouge" fill="red" width="40" height="40"/>

<ret id="arrejaune" fill="yellow" width="40" height="40"/>

</defs>

<use x="80" y="0" xlink:href="#arrejaune" />

<use x="120" y="0" xlink:href="#arrerouge" />

(15)

possibilitéd'appliquer unetransformationausens géométrique:

<ret width="100" height="50" x="10" y="50"

transform="translate(10,-20)" />

<ret width="100" height="50" x="10" y="50"

transform="rotate(45, 20, 20)" />

<ret width="100" height="50" x="10" y="50"

transform="sale(3)" />

(16)

<?xml-stylesheet type="text/ss" href="styleDessin.ss"?>

hier styleDessin.ss

ret.adre {

fill: none;

stroke: blak;

stroke-width: 1;

}

irle:hover {

fill: none;

stroke: blue;

stroke-width: 1;

}

#parours {

fill: none;

stroke: red;

stroke-width: 1;

}

(17)

Juste unourt exemple :

<use xlink:href="#ube" x="150" y="150">

<animate attributeName="y" dur="2s"

values="150; 140; 130; 120; 110; 100;

110; 120; 130; 140; 150" />

</use>

Voirlawebographie pour plusd'informationsformidables.

(18)

Manipulation en javasriptduDOM SVG:

<svg xmlns="http://www.w3.org/2000/svg"

xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="300">

<sript><![CDATA[

var n=0;

funtion lone_objet(evt) {

if (evt.detail == 2) {

svgdo=evt.target.ownerDoument;

n += 1;

var objet=svgdo.getElementById("retangle");

var newnode = objet.loneNode(false);

newnode.setAttributeNS(null , "x" , 100 + 10 * n);

newnode.setAttributeNS(null , "y" , 100 + 10 * n);

newnode.setAttributeNS(null ,"fill","blue")

var ontents = svgdo.getElementById ('affihe');

ontents.appendChild (newnode)

}

}

℄℄></sript>

SébastienVerel ProgrammationWeb

(19)

(...)

℄℄></sript>

<g id="affihe">

<text id="texte" x="150" y="40" text-anhor="middle"

font-size="20" font-family="Arial" fill="red">

Double lik sur le retangle

</text>

<ret id="retangle" onlik="lone_objet(evt)"

x="50" y="50" width="100" height="50" fill="green"/>

</g>

</svg>

(20)

1

Connaitreles prinipesde SVG

2

Connaitrelastruture d'un hiersvg

3

Connaitreles gures debase

4

Savoirregrouperunensemble de gures

5

Connaitreles propriétés prinipales:ll, stroke,et.

Question prinipaledujour :

Comment produireune imageen XML?

Références

Documents relatifs

left : déale vers la droite si positif, vers la gauhe sinon. right : déale vers la gauhe si positif, vers la

Savoir modier un style d'un élément du DOM.. Savoir élaborer un menu

Connaitre la synthaxe d'un requete HTTP et sa réponse2. Connaitre les ommandes d'une

Savoir traiter simplement la réponse texte d'une requète5. Savoir traiter la réponse à l'aide de XML et

Connaître les mots lefs d'un langage impératif simple.. Connaître les opérations de bases

−→ utiliser un shéma itératif à nombre d'itérations déterminé. −→ appeler aussi souvent

ne retourner auune valeur : on notera le type de retour rien. Algorithme deviner(n : entier)

Utilisation d'un aumulateur pour réaliser un alul dans