SVG Elipse
Nesta página, você encontra informações sobre o elemento de forma SVG <ellipse>, aprende a criar uma elipse e vê exemplos variados.
O que é o elemento SVG <ellipse>?
O elemento SVG <ellipse> desenha uma elipse — uma forma oval, um "círculo alongado". Você a posiciona pelo seu ponto central (cx, cy) e fornece dois raios: rx para o raio horizontal e ry para o raio vertical.
Essa é a principal diferença em relação ao elemento <circle>. Um círculo tem um único raio (r) porque é igualmente largo em todas as direções. Uma elipse precisa de dois raios porque é mais larga em uma direção do que na outra:
- Use
<circle>quando a forma for perfeitamente redonda. - Use
<ellipse>quando precisar de um oval, ou quandorxerydevem ser diferentes.
Se você definir rx igual a ry, a elipse será renderizada como um círculo.
O sistema de coordenadas SVG
Como toda forma SVG, uma elipse é colocada na tela SVG, onde a origem (0, 0) é o canto superior esquerdo. O eixo x aumenta para a direita e o eixo y aumenta para baixo. Portanto, cx="230" cy="120" posiciona o centro da elipse 230 unidades a partir da esquerda e 120 unidades abaixo do topo. Consulte o capítulo da tag <svg> para saber mais sobre o sistema de coordenadas e o viewport.
O elemento <ellipse> não possui atributo para orientação, portanto seus eixos rx/ry são sempre horizontal e vertical. Para inclinar uma elipse, gire-a com o atributo transform (mostrado abaixo).
Exemplo do elemento SVG <ellipse>:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<svg width="400" height="200" >
<ellipse cx="230" cy="120" rx="150" ry="70" style="fill:pink;stroke:lightblue;stroke-width:5" />
Sorry, inline SVG isn't supported by your browser.
</svg>
</body>
</html>No código acima, cx="230" e cy="120" definem o centro, rx="150" faz a elipse ter 300 unidades de largura e ry="70" a faz ter 140 unidades de altura. O atributo style a preenche com rosa e adiciona um contorno azul-claro de 5 unidades.
Exemplo do elemento SVG <ellipse> para criar duas elipses sobrepostas:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<svg width="400" height="200">
<ellipse cx="200" cy="110" rx="160" ry="25" style="fill:lightblue" />
<ellipse cx="190" cy="85" rx="140" ry="20" style="fill:blue" />
Sorry,inline SVG isn't supported by your browser.
</svg>
</body>
</html>Você pode adicionar quantas elipses quiser com cores e tamanhos diferentes.
Exemplo do elemento SVG <ellipse> para combinar duas elipses:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<svg width="400" height="150" >
<ellipse cx="200" cy="70" rx="200" ry="35" style="fill:purple" />
<ellipse cx="190" cy="70" rx="160" ry="25" style="fill:lightgrey" />
Sorry, inline SVG isn't supported by your browser.
</svg>
</body>
</html>Exemplo de rotação e estilização de um <ellipse>:
Como o <ellipse> em si não possui atributo de orientação, você o inclina com o atributo transform="rotate(...)". Os dois primeiros números passados para rotate() após o ângulo são o ponto central em torno do qual girar — aqui o próprio centro da elipse, para que ela gire em seu lugar. Este exemplo também usa opacity e um contorno tracejado via stroke-dasharray:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<svg width="400" height="200">
<ellipse cx="200" cy="100" rx="150" ry="60"
transform="rotate(-25 200 100)"
style="fill:plum;opacity:0.7;stroke:purple;stroke-width:4;stroke-dasharray:10,6" />
Sorry, inline SVG isn't supported by your browser.
</svg>
</body>
</html>O valor rotate(-25 200 100) gira a elipse 25 graus no sentido anti-horário em torno do ponto (200, 100), opacity:0.7 a torna levemente transparente e stroke-dasharray:10,6 desenha o contorno como traços de 10 unidades separados por lacunas de 6 unidades.
Atributos
| Atributo | Descrição |
|---|---|
| cx | A coordenada x do centro da elipse. |
| cy | A coordenada y do centro da elipse. |
| rx | O raio horizontal (ao longo do eixo x). |
| ry | O raio vertical (ao longo do eixo y). |
| pathLength | O comprimento total do caminho, em unidades do usuário. |
O elemento SVG <ellipse> também suporta os Atributos Globais e os Atributos de Evento.
Capítulos relacionados
- SVG
<circle>— o equivalente redondo, que usa um único raior. - Tag HTML SVG — o contêiner
<svg>, o viewport e o sistema de coordenadas.