Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Usando
Aspose.SVG for .NET, puede realizar una transformación de rotación mediante programación. Este artículo cubre ejemplos de C# para la rotación SVG. Considera casos de uso de la función rotate() en el atributo transform y la matriz de transformación – matrix(a,b,c,d,e,f).
El siguiente fragmento de código C# demuestra cómo crear un elemento SVG <rect>, establecer sus atributos y aplicar una transformación usando la función rotate() para el atributo transform.
RootElement apunta al elemento raíz <svg> del documento.<rect> con atributos y agréguelo al elemento <svg>:rotate() para el atributo transform, que toma el ángulo que se va a rotar y las coordenadas del punto alrededor del cual se va a rotar. Si no se especifican coordenadas, la rotación se realizará alrededor del punto (0, 0) del sistema de coordenadas inicial.rectElement a svgElement, puedes usar el método
AppendChild().1using Aspose.Svg;
2using System.IO; 1// Rotate an SVG element using the transform attribute programmatically with Aspose.SVG
2
3// Set SVG Namespace URL
4string SvgNamespace = "http://www.w3.org/2000/svg";
5
6// Create a new SVG document
7using (SVGDocument document = new SVGDocument())
8{
9 SVGSVGElement svgElement = document.RootElement;
10
11 // Create a <rect> element and set its attributes
12 SVGRectElement rectElement = (SVGRectElement)document.CreateElementNS(SvgNamespace, "rect");
13 rectElement.X.BaseVal.Value = 150;
14 rectElement.Y.BaseVal.Value = 50;
15 rectElement.Width.BaseVal.Value = 100;
16 rectElement.Height.BaseVal.Value = 100;
17 rectElement.SetAttribute("fill", "purple");
18
19 // Apply rotate() function to the SVG
20 rectElement.SetAttribute("transform", "rotate(45)");
21
22 // Append the rect element to the SVG
23 svgElement.AppendChild(rectElement);
24
25 // Save the document
26 document.Save(Path.Combine(OutputDir, "rotate-svg-rect.svg"));
27}La transformación gira el rectángulo 45 grados alrededor del punto (0, 0) del sistema de coordenadas original, ya que las coordenadas del punto alrededor del cual se debe girar el elemento no se pasaron a la función rotate(). Para mayor claridad, la Figura muestra los sistemas de coordenadas antes y después de la rotación. Esto ilustra que la transformación de rotación se realiza girando el sistema de coordenadas.

El siguiente fragmento de código C# muestra cómo encontrar un elemento SVG requerido en un archivo SVG existente y rotarlo. Debes seguir algunos pasos:
<svg> del documento.transformar con el valor rotate(45, 100, 140) para el elemento rectángulo. Esta transformación gira el elemento en un ángulo de 45 grados (en el sentido de las agujas del reloj) alrededor de un punto específico (centro del rectángulo seleccionado) con coordenadas (100, 140).1using Aspose.Svg;
2using System.IO; 1// Rotate a single selected element in an SVG document using C#
2
3// Load an SVG document from a file
4SVGDocument document = new SVGDocument(Path.Combine(DataDir, "shapes.svg"));
5
6// Get the root SVG element of the document
7SVGSVGElement svgElement = document.RootElement;
8
9// Get the fist <rect> element for rotation
10SVGRectElement rectElement = svgElement.QuerySelector("rect") as SVGRectElement;
11
12// Set a new "transform" attribute with rotation value for the rectangle element
13rectElement.SetAttribute("transform", "rotate(45, 100, 140)");
14
15// Save the document
16string outputPath = "rotate-element.svg";
17document.Save(Path.Combine(OutputDir, outputPath));La siguiente figura muestra el SVG original (a) y la imagen con el primer elemento rectangular girado (b). Esta transformación cambió la apariencia del rectángulo en relación con otros elementos. La posición, el ancho y el alto del rectángulo siguen siendo los mismos, pero se rotará visualmente alrededor del punto especificado (en este caso, el centro del rectángulo).

Nota: Para rotar un elemento SVG alrededor de su centro o algún otro punto, debe usar la función rotate(angle, cx, cy), que rota el elemento en un ángulo alrededor del punto con coordenadas (cx , cy). Determine (calcule) la posición del centro de la imagen (sus coordenadas) y realice la rotación.
Aquí, veremos el mismo ejemplo: rotar el primer elemento <rect> dentro del archivo
shapes.svg alrededor de su centro. Sin embargo, esta vez realizaremos esta tarea utilizando SVG Builder. SVG Builder API ofrece a los desarrolladores una poderosa herramienta para crear y actualizar elementos SVG de manera simplificada. En este fragmento de código:
<rect> del documento SVG.<rect> recuperado.<rect> con la transformación deseada, se llama al método
Build() para finalizar el proceso de construcción y aplicar las modificaciones al elemento.1using Aspose.Svg.Builder;
2using System.Linq;
3using System.IO; 1// Rotate a single selected element in an SVG document using SVG Builder API
2
3// Load an SVG document
4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "shapes.svg")))
5{
6 // Find the first <rect> element for rotation
7 SVGRectElement rect = document.GetElementsByTagName("rect").First() as SVGRectElement;
8
9 // Rotate the first <rect> element around its center using the SVGRectElementBuilder
10 new SVGRectElementBuilder()
11 .Transform(t => t.Rotate(45, 100, 140))
12 .Build(rect);
13
14 // Save the document
15 document.Save(Path.Combine(OutputDir, "rotate-element-using-builder.svg"));
16}El método
Transform() es parte de la API SVG Builder, que permite a los desarrolladores aplicar transformaciones mediante programación a elementos SVG. Las transformaciones en SVG permiten a los desarrolladores modificar la posición, rotación, escala e inclinación de los elementos SVG. El método Transform() normalmente toma una o más funciones de transformación como argumentos, cada una de las cuales especifica un tipo particular de transformación. Estas funciones incluyen:
El método Transform() permite encadenar múltiples funciones de transformación para aplicar transformaciones más complejas.
El artículo SVG Builder API explora las capacidades de Aspose.SVG Builder API para crear y modificar elementos SVG en C#. La API SVG Builder está diseñada para agilizar la creación y actualización de elementos SVG en C#. Verá la eficiencia de Fluent Builder Pattern y mixins en la manipulación de SVG. Aprenderá sobre las clases y métodos, los constructores especializados y cómo simplifican la programación SVG.
Aquí, veremos el ejemplo de C# para rotar una imagen SVG completa en lugar de un solo elemento e implementaremos la transformación usando una matriz de rotación. Miremos más de cerca el código C# para aplicar la matriz de rotación.
<svg> del documento.transform al elemento raíz <svg>.<svg>. El CTM representa las transformaciones acumulativas aplicadas al elemento e incluye información sobre traslación, rotación, escala y sesgo que se pueden aplicar al elemento.transformAttribute: una representación de cadena de una matriz de transformación 2D utilizando los valores de la matriz de transformación modificada transformationMatrix. La notación matricial es matrix(a, b, c, d, e, f).transform del elemento <svg> usando la cadena transformAttribute.1using Aspose.Svg.Builder;
2using System.Linq;
3using System.IO; 1// Rotate an entire SVG document using a transformation matrix programmatically in C#
2
3// Load an SVG document
4string documentPath = Path.Combine(DataDir, "shapes.svg");
5using (SVGDocument document = new SVGDocument(documentPath))
6{
7 SVGSVGElement svgElement = document.RootElement;
8
9 // Get the transformation matrix associated with the svgElement
10 SVGMatrix transformationMatrix = svgElement.GetCTM();
11 transformationMatrix = transformationMatrix.Rotate(45);
12
13 // Apply the transformation matrix to the svgElement
14 string transformAttribute = "matrix(" + transformationMatrix.A + "," + transformationMatrix.B + ","
15 + transformationMatrix.C + "," + transformationMatrix.D + "," + transformationMatrix.E + ","
16 + transformationMatrix.F + ")";
17 svgElement.SetAttribute("transform", transformAttribute);
18
19 // Save the document
20 document.Save(Path.Combine(OutputDir, "rotate-matrix.svg"));
21}La siguiente figura muestra el SVG original (a) y la imagen rotada (b).

Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.