是否存在 System.Drawing 到 TikZ 的解决方案?

是否存在 System.Drawing 到 TikZ 的解决方案?

不确定这是否属于这里或.NET 论坛。

有人知道使用 TikZ 重用 .NET 编码绘图的实现吗?或者有什么想法,如何做到这一点?我只是想知道,这是否容易或不值得付出努力。

举个例子:在 C# 中绘图是这样的:

static Pen black = new Pen(Color.FromArgb(50, 0, 0, 0), 1);

给出线条。颜色和厚度1

SmoothingMode saveMode = SmoothingMode.AntiAlias;

一些可以一开始就忽略的示例属性。

int aVariable = 20;
    Point startPos = new Point(0, 142);
    Point curvePos = new Point(43, 134);
    Point endPos = new Point(72, 116);
    for (int y = 0; y <= aVariable; y++)
    {
        g.DrawCurve(black, new Point[] { startPos, curvePos, endPos });
        startPos.Y = startPos.Y + 4;
        curvePos.Y = curvePos.Y + 4;
        endPos.Y = endPos.Y + 4;
    }

或者

Color color1 = Color.FromArgb(80, 132, 178, 223);
Color color2 = Color.FromArgb(132, 178, 223);
g.FillRectangle(new LinearGradientBrush(new Point(124, 19), new Point(124, 25), color1, color2), new Rectangle(124, 19, 29, 6));

演示一些图纸。

我认为,它与 TikZ 有很多相似之处,因为一切都由坐标、直线、曲线或矩形定义。因此,任何有关如何重用此代码的想法都欢迎提出。

答案1

收集评论来写答案:

不,周围没有转换器。或者至少没有已知的转换器。

最简单的解决方案是,使用这样的库将绘图导出为 SVG:http://www.codeproject.com/Articles/3751/An-SVG-framework-in-C-and-an-SVG-GDI-bridge

SVG 可以在 Inkscape 中处理。Inkscape 具有导出到 TikZ 的功能,该功能仍在开发中,但已经取得了不错的效果。

相关内容