靶机服务端(适用于Linux系统控制靶机的情况)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.5 KiB

4 weeks ago
namespace EGFramework.Code{
public class EGSvgGenerator : IGenerateToolsInterface
{
public string SvgHeader { get ; private set;}
public const string SvgFooter = "</svg>";
public int Width { get; set; }
public int Height { get; set; }
public EGSvgViewBox ViewBox { get; set; }
public EGSvgGenerator(int width, int height, EGSvgViewBox viewBox)
{
Width = width;
Height = height;
ViewBox = viewBox;
SvgHeader = $"<svg width=\"{width}\" height=\"{height}\" viewBox=\"{viewBox.X} {viewBox.Y} {viewBox.Width} {viewBox.Height}\" xmlns=\"http://www.w3.org/2000/svg\">";
}
public void DrawCircle(float x, float y, float radius, string color)
{
// Implementation for drawing a circle in SVG format
string svgCircle = $"<circle cx=\"{x}\" cy=\"{y}\" r=\"{radius}\" fill=\"{color}\" />";
}
public void DrawEllipse(float cx, float cy, float rx, float ry, string color)
{
// Implementation for drawing an ellipse in SVG format
string svgEllipse = $"<ellipse cx=\"{cx}\" cy=\"{cy}\" rx=\"{rx}\" ry=\"{ry}\" fill=\"{color}\" />";
}
public void DrawPolygon(float[] points, string color)
{
// Implementation for drawing a polygon in SVG format
string svgPolygon = "<polygon points=\"";
for (int i = 0; i < points.Length; i += 2)
{
svgPolygon += $"{points[i]},{points[i + 1]} ";
}
svgPolygon += $"\" fill=\"{color}\" />";
}
public void DrawPolyline(float[] points, string color)
{
// Implementation for drawing a polyline in SVG format
string svgPolyline = "<polyline points=\"";
for (int i = 0; i < points.Length; i += 2)
{
svgPolyline += $"{points[i]},{points[i + 1]} ";
}
svgPolyline += $"\" stroke=\"{color}\" fill=\"none\" />";
}
public void DrawPath(string d, string color)
{
// Implementation for drawing a path in SVG format
string svgPath = $"<path d=\"{d}\" fill=\"{color}\" />";
}
public void DrawRectangle(float x, float y, float width, float height, string color)
{
// Implementation for drawing a rectangle in SVG format
string svgRectangle = $"<rect x=\"{x}\" y=\"{y}\" width=\"{width}\" height=\"{height}\" fill=\"{color}\" />";
}
public void DrawLine(float x1, float y1, float x2, float y2, string color)
{
// Implementation for drawing a line in SVG format
string svgLine = $"<line x1=\"{x1}\" y1=\"{y1}\" x2=\"{x2}\" y2=\"{y2}\" stroke=\"{color}\" />";
}
public void DrawText(float x, float y, string text, string color)
{
// Implementation for drawing text in SVG format
string svgText = $"<text x=\"{x}\" y=\"{y}\" fill=\"{color}\">{text}</text>";
}
public string GenerateCode<T>()
{
return typeof(T).Name;
}
}
public struct EGSvgViewBox {
public float X { get; set; }
public float Y { get; set; }
public float Width { get; set; }
public float Height { get; set; }
public EGSvgViewBox(float x, float y, float width, float height)
{
X = x;
Y = y;
Width = width;
Height = height;
}
}
}