Exemplo n.º 1
0
        public void Renderizar(RenderContext contexto)
        {
            var largura = contexto.Info.Width;
            var altura  = contexto.Info.Height;

            using (var stream = ResourcesHelper.CarregarRecurso(_nomeSvg))
            {
                using (var svgDoc = _engine.LoadSvg(stream))
                {
                    var limitesSvg = svgDoc.Limites;

                    var xRatio = largura / limitesSvg.Largura();
                    var yRatio = altura / limitesSvg.Altura();
                    var escala = Math.Min(xRatio, yRatio);

                    var posicaoX = (largura - (limitesSvg.Largura() * escala)) / 2;
                    var posicaoY = (altura - (limitesSvg.Altura() * escala)) / 2;

                    var matriz = new Transformacao(
                        new Vector2(escala, escala),
                        new Vector2(posicaoX, posicaoY));

                    _engine.DesenharSvg(svgDoc, matriz);

                    var limitesRenderer = new Retangulo(
                        limitesSvg.Esquerda,
                        limitesSvg.Cima,
                        limitesSvg.Direita,
                        limitesSvg.Baixo,
                        matriz);

                    //Correção limites pelas sombras
                    limitesRenderer.Cima    += 3.5f;
                    limitesRenderer.Direita -= 12;
                    limitesRenderer.Baixo   -= 7;

                    Limites = limitesRenderer;
                }
            }
        }
Exemplo n.º 2
0
 public Objeto2D()
 {
     Transformação = new Transformacao(this);
 }